我想创建一个像我一样的“胖”jar,不仅包括通常的类,清单文件等,还包括我的'libs'文件夹。
我尝试过:
<jar destfile="myjar.jar" update="yes" basedir="${libs.dir}"/>
但是这会将'libs'中的文件添加到jar文件的根目录中,我希望在jar中拥有libs文件夹(当然包含它包含的所有内容)
我可以在jar中自己创建lib文件夹,然后将文件添加到jar中的特定位置吗?
答案 0 :(得分:9)
如果您指定将目录用作文件集的根目录,那么您只需匹配目录即可保留结构。
<jar destfile="myjar.jar" >
<fileset dir=".">
<include name="**/${libs.dir}/**"/>
</fileset>
</jar>
答案 1 :(得分:1)
使用此ant扩展程序:http://one-jar.sourceforge.net/
还有Eclipse插件:FatJar
答案 2 :(得分:1)
您必须执行以下操作。具体来说, zipfileset 命令。你基本上是在说你要构建$ {build.name} .jar(你可以将路径硬编码为“myjar.jar”或者其他东西),然后将各种文件添加到JAR中。
希望这有帮助!
<jar destfile="${dist}/${build.name}.jar">
<!-- Generate the MANIFEST.MF file. -->
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="Release-Version" value="${version}" />
<attribute name="Main-Class" value="my.lib.Main" />
<attribute name="SplashScreen-Image" value="TitleScreen.png" />
<attribute name="Class-Path" value="${classpath}" />
</manifest>
<zipfileset dir="${build.dir}" />
<zipfileset dir="${resources}" />
<fileset file="${resources}/icons/misc_icons/TitleScreen.png" />
</jar>
答案 3 :(得分:1)