gpt4 book ai didi

ant - 如何使用Ant将文件复制到现有的JAR中?

转载 作者:行者123 更新时间:2023-12-03 12:09:07 26 4
gpt4 key购买 nike

我有一个项目,需要访问其自己的JAR文件中的资源。当我为项目创建JAR文件时,我想将目录复制到该JAR文件中(我想等效的ZIP就是将目录“添加”到现有的ZIP文件中)。我只希望副本在创建JAR之后发生(并且显然我不希望在清理并删除JAR文件后发生副本)。

当前,构建文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project name="foobar" basedir=".." default="jar">

<!-- project-specific properties -->
<property name="project.path" value="my/project/dir/foobar" />

<patternset id="project.include">
<include name="${project.path}/**" />
</patternset>
<patternset id="project.jar.include">
<include name="${project.path}/**" />
</patternset>

<import file="common-tasks.xml" />

<property name="jar.file" location="${test.dir}/foobar.jar" />
<property name="manifest.file" location="misc/foobar.manifest" />
</project>

有些构建任务是从另一个文件(common-tasks.xml)调用的,在这里我无法显示。

最佳答案

Jar / Ear Ant任务是更通用的Zip task的子任务。这意味着您还可以在Jar任务中使用zipfileset:

<jar destfile="${jar.file}" basedir="...">
<zipfileset dir="${project.path}" includes="*.jar" prefix="libs"/>
</jar>

我还看到您定义了一个单独的 list 文件以包含在Jar中。您还可以使用嵌套的 manifest命令:
<jar destfile="@{destfile}" basedir="@{basedir}">
<manifest>
<attribute name="Built-By" value="..."/>
<attribute name="Built-Date" value="..."/>

<attribute name="Implementation-Title" value="..."/>
<attribute name="Implementation-Version" value="..."/>
<attribute name="Implementation-Vendor" value="..."/>
</manifest>
</jar>

关于ant - 如何使用Ant将文件复制到现有的JAR中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/518207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com