我正在尝试编写一个ant目标,它将根据一堆java文件和一些属性文件创建一个jar,但是当前项目设置的方式包含属性文件时遇到了麻烦。
这些是我的蚂蚁目标:
1 - 编译" myjar.src"中的java源文件文件夹并将生成的类放入" myjar.classes"夹。完成此操作后,复制" myjar.src"中的所有非.java文件。到" myjar.classes"。
2 - 使用" jar"创建jar。命令using basedir = $ {myjar.classes}并告诉它包含所有内容。
这些是我想要的蚂蚁目标:
1 - 编译java源文件并将生成的类放入" myjar.classes"夹。仅包含.java文件
2 - 使用" jar"创建罐子命令using usingir = $ {myjar.classes.location},但也包括来自" myjar.src的.properties和.xml文件。"
关键区别是我想要来自" myjar.src"的属性和xml文件。当我把课程打包成" myjar.classes" using basedir = $ {myjar.classes} - 当它们不在下面时,如何包含这些fies" myjar.classes"?
这是我要修改的蚂蚁目标:
<CreateManifest title="myjar classes etc"/>
<jar
destfile="${myProject.build.jars.dir}\ta_test_driver.jar"
basedir="${myjar.classes}"
manifest="${manifest}">
<include name="**"/>
</jar>
我之所以不仅仅使用一个基于目标的目录的原因是项目中没有其他jar创建调用那样做,而且我对于仅仅改变这一点犹豫不决。我确实试过这样做,但是在指定正确的目录时遇到了麻烦。 (还有其他罐子使用类似的目录结构,我现在或将来都不想干涉它们。)我只是想知道这些是否是更好的方法呢?非常感谢。
答案 0 :(得分:1)
我设法从这里解决了这个问题:How to include file in Jar through Ant at specific location
这是我最后修改过的蚂蚁电话:
<CreateManifest title="myjar classes etc"/>
<jar
destfile="${myProject.build.jars.dir}\ta_test_driver.jar"
basedir="${myProject.classes}\ta_test_driver"
manifest="${manifest}">
<include name="**"/>
<zipfileset dir="${myjar.src}"
includes="**/*.xml, **/*.properties, **/*.gif"
/>
</jar>
请注意 zipfileset 标记。