我有一个项目需要访问自己的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>
Run Code Online (Sandbox Code Playgroud)
一些构建任务是从另一个文件(common-tasks.xml)调用的,我无法在此处显示.
Osc*_*Ryz 18
<jar update="true">
...
</jar>
Run Code Online (Sandbox Code Playgroud)
Vla*_*mir 13
Jar/Ear Ant任务是更通用的Zip任务的子任务.这意味着您还可以zipfileset
在Jar任务中使用:
<jar destfile="${jar.file}" basedir="...">
<zipfileset dir="${project.path}" includes="*.jar" prefix="libs"/>
</jar>
Run Code Online (Sandbox Code Playgroud)
我还看到你定义了一个单独的清单文件以包含在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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25286 次 |
最近记录: |