2011-05-19 74 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