Ant jar任务 - 包括不在basedir下面的文件

时间:2014-09-11 10:48:46

标签: java ant jar fileset

我正在尝试编写一个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创建调用那样做,而且我对于仅仅改变这一点犹豫不决。我确实试过这样做,但是在指定正确的目录时遇到了麻烦。 (还有其他罐子使用类似的目录结构,我现在或将来都不想干涉它们。)我只是想知道这些是否是更好的方法呢?非常感谢。

1 个答案:

答案 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 标记。