2011-05-19 71 views
1

我在MZ ant脚本以下目标构建Java应用Java的Ant构建与外部库

<target name="jar" depends="compile" description="generate jar"> 
    <jar jarfile="${build.dir}/jar/final.jar" basedir="${build.dir}/classes"> 
     <manifest> 
      <attribute name="Main-Class" value="my.package.Main" /> 
     </manifest> 
    </jar> 
</target> 

我需要的是某种方式包括的log4j放进瓶子里,因为它与

运行时抛出一个NoClassDefFoundError的
java -jar final.jar 

实现该目标的最佳方法是什么?

最佳, 威尔

回答

4

我能解决我的问题与zipgroupfileset

<jar jarfile="${build.dir}/jar/final.jar"> 
     <fileset dir="${build.dir}/classes" /> 
     <zipgroupfileset dir="${lib.dir}" includes="*.jar"/> 
     <manifest> 
      <attribute name="Main-Class" value="my.pacakge.Main" /> 
     </manifest> 
    </jar> 
+0

这很有趣。我已经尝试了我在互联网上找到的所有这些解决方案中的每一个,所以这是唯一适用于我的解决方案。我不知道为什么包括外部JAR这样的痛苦。我肯定错过了什么。 – broncoAbierto 2014-04-04 12:58:05

1

尝试加入包括parametersettings到它,就像

includes="<path-to-log4j-folder>/*.jar" 

详细语法是here

+0

包括jar文件放进一个罐子里似乎没有工作。包含的jar似乎不在classpath中。 – Will 2011-05-19 22:01:33

+0

尝试将其添加为jar任务的一个孩子一样.. \t <罐子jar文件= .. \t \t \t ”/> \t omermuhammed 2011-05-19 22:30:44