我正在使用ANT来管理多个项目。我有一个build-common.xml脚本,单个项目包含。有些项目是图书馆,有些是项目。对于这些节目,我想包括
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
<jar>
标记中的。对于库,我想有一个空的jar标签,如下所示。
<target name="jar" depends="compile" description="generate a jar">
<mkdir dir="${build}/jar" />
<property name="jarfile" value="${jar}/${ant.project.name}.jar" />
<jar jarfile="${jarfile}" basedir="${classes}">
</jar>
</target>
只有在定义了属性main.class时才能包含清单属性Main-Class吗?
谢谢!
答案 0 :(得分:6)
使用条件目标:
<target name="jar-mkdir" depends="compile" description="generate a jar">
<mkdir dir="${build}/jar" />
<property name="jarfile" value="${jar}/${ant.project.name}.jar" />
</target>
<target name="jar-main" depends="compile" description="generate a jar" if="main.class">
<jar jarfile="${jarfile}" basedir="${classes}">
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
</target>
<target name="jar-nomain" depends="compile" description="generate a jar" unless="main.class">
<jar jarfile="${jarfile}" basedir="${classes}">
</jar>
</target>
<target name="jar" depends="compile, jar-mkdir, jar-main, jar-nomain" description="generate a jar">
</target>
仅当main.class存在时,才会运行jar-main
(并添加清单)。如果不存在,jar-nomain
将会运行。