【发布时间】:2012-12-13 21:08:18
【问题描述】:
我已经使用 ant build.xml 定义了一个 jar 任务。我需要将所有依赖项捆绑到我的 jar 中。我不明白为什么 ant 会提取 jar 并将 .jars 和 .class 文件包含到我的 jar 中。它不必要地增加了我的 jar 文件的大小。这是我的 jar 任务。
<jar destfile="build/main/ERS2SupportingUtilities.jar">
<fileset dir="target/classes">
<exclude name="*.sh"/>
</fileset>
<restrict>
<name name="**/*.class"/>
<archives>
<zips>
<fileset dir="./src/main/resources/lib" includes="**/*.jar"/>
</zips>
</archives>
</restrict>
<manifest>
<attribute name="Main-Class" value="com.cibc.ers2.invoker.JobTest"/>
<attribute name="Class-Path" value="./lib/log4j-1.2.16.jar
./lib/org.springframework.context-3.0.3RELEASE.jar
./lib/org.springframework.asm-3.0.3.RELEASE.jar
./lib/junit-4.7.jar
./lib/org.springframework.orm-3.0.3.RELEASE.jar
./lib/org.springframework.transaction-3.0.3.RELEASE.jar
./lib/org.springframework.aspects-3.0.3.RELEASE.jar
./lib/commons-pool-1.5.4.jar
./lib/org.springframework.core-3.0.3.RELEASE.jar
./lib/commons-logging-1.1.1.jar
./lib/HashUtility.jar
./lib/org.springframework.expression-3.0.3.RELEASE.jar
./lib/commons-lang-2.6.jar
./lib/org.springframework.instrument-3.0.3.RELEASE.jar
./lib/mockito-all-1.9.5.jar
./lib/com.springsource.org.aopalliance-1.0.0.jar
./lib/ojdbc14.jar
./lib/commons-io-2.4.jar
./lib/commons-collections-3.1.jar
./lib/org.springframework.jdbc-3.0.3.RELEASE.jar
./lib/spring-batch-infrastructure-2.1.9.RELEASE.jar
./lib/org.springframework.context.support-3.0.3.RELEASE.jar
./lib/commons-dbcp-1.4.jar
./lib/spring-batch-test-2.1.9.RELEASE.jar
./lib/org.springframework.beans-3.0.3.RELEASE.jar
./lib/org.springframework.oxm-3.0.3.RELEASE.jar
./lib/org.springframework.aop-3.0.3.RELEASE.jar
./lib/commons-beanutils.jar
./lib/org.springframework.binding-2.1.1.RELEASE.jar
./lib/spring-batch-core-2.1.9.RELEASE.jar
./lib/org.springframework.test-3.0.3.RELEASE.jar
./launch-context.xml
./log4j.xml"
/>
</manifest>
</jar>
我也尝试过zipgroupfileset,但这也产生了同样的问题。
编辑
很抱歉没有提供足够的信息来说明我想要实现的目标。我有一个应用程序,我正在编译@@target/classes。我需要将此应用程序(包括我的类文件和依赖项)打包到一个 jar 中。
【问题讨论】:
-
为什么需要限制标签?
-
呃,你特别包括类,你的 JAR 任务中包含的第一个文件集。
-
您没有告诉我们您要达到的目标。只包括罐子?
-
是的,很抱歉,我只想包含罐子。
-
但在编辑中你说你想包含类和罐子。 " 我需要将此应用程序(包括我的类文件和依赖项)打包到一个 jar 中。"
标签: java ant build jar executable-jar