给定一个Ant path
元素,如下所示:
<path id="compile.classpath">
<pathelement location="${common.jar}"/>
<pathelement location="${servlet.jar}"/>
<pathelement location="${j2ee.jar}"/>
...
</path>
如何创建包含jar
中所有文件的超级 - path
,而无需再次拼出所有文件名?以下工作,但包含重复的代码,而不是我想要的:
<jar jarfile="uber.jar" ...>
<manifest> ... </manifest>
<zipfileset src="${common.jar}"/> // UNWANTED code duplication
<zipfileset src="${servlet.jar}"/>
<zipfileset src="${j2ee.jar}"/>
</jar>
答案 0 :(得分:0)
你应该可以这样做:
<jar destfile="über.jar">
<manifest>
<attribute name="Main-Class" value="${entry.point.class}"/>
</manifest>
<path refid="compile.classpath"/>
</jar>
我不明白为什么common.jar
会有不需要的重复代码。此外,您通常不会在罐子中包含罐子。
我认为你真正想要创建的是War File。 war文件可以包含多个jar,以及要执行的类(通过<javac>
任务编译的类)。在META-INF / MANIFEST.MF文件中,您包含一个Main-Class:
条目,指向应该作为战争入口点的类。用户将能够执行你的战争:
$ java -jar my.war
答案 1 :(得分:0)
或者,您可以使用清单文件中列出的类路径创建一个可执行jar: