2014-09-11 25 views
0

我想写一个ant目标,将创建一个基于一堆java文件和一些属性文件的jar,但我遇到了麻烦,包括项目的方式属性文件目前设置。蚂蚁jar任务 - 包括文件不在下方basedir

这些都是蚂蚁的目标,我有:

1 - 从“myjar.src”文件夹中编译Java烃源文件,并把产生的阶级变成了“myjar.classes”文件夹中。完成此操作后,将所有非.java文件从“myjar.src”复制到“myjar.classes”。

2 - 使用“jar”命令使用basedir = $ {myjar.classes}创建jar,并告诉它包含所有内容。

这些Ant目标我想:

1 - 编译java烃源文件,并把产生的阶级变成了“myjar.classes”文件夹中。仅包含.java文件

2 - 使用basedir = $ {myjar.classes.location}使用“jar”命令创建jar,但还包括来自“myjar.src”的.properties和.xml文件。

关键的区别是,我希望从myjar.src中包含的属性和xml文件包含在使用basedir = $ {myjar.classes}的“myjar.classes”中的类中时 - 如何包含当他们不在“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> 

的原因,我不只是使用目录一个级别为BASEDIR是,没有任何其他jar建立呼叫的项目做那么,我只是犹豫改变这一点。我确实试图做到这一点,但无法指定正确的目录。 (还有其他的罐子使用类似的目录结构,我现在或将来都不想干涉它们。)我只是想知道这是否是一种更好的方法来做到这一点?非常感谢。

回答

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标签。