sch*_*mmd 2 ant program-entry-point jar class manifest
我正在使用ANT来管理多个项目.我有一个build-common.xml脚本,单个项目包含.有些项目是图书馆,有些是项目.对于这些节目,我想包括
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
Run Code Online (Sandbox Code Playgroud)
在<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>
Run Code Online (Sandbox Code Playgroud)
有没有办法只有在定义属性main.class时才能包含清单属性Main-Class?
谢谢!
使用条件目标:
<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>
Run Code Online (Sandbox Code Playgroud)
这将jar-main仅在main.class存在时运行(并添加清单).当它不存在时jar-nomain将运行.