【发布时间】:2017-03-30 17:24:31
【问题描述】:
在 Netbeans 中,经过一番研究,我设法编辑文件 build.xml 以自定义 IDE 生成我的 jar 和清单文件的方式。我不得不为 Eclipse 迁移一个项目,甚至找到了构建 jar 的选项,但我需要使用一些个性化信息来构建我的 jar。
我在eclipse的项目中添加了build.xml文件作为构建文件ANT,但是当我发送执行它时,eclipse运行了两次,一次生成2个jars文件。
关注我的 build.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="GerOficios" default="makejar" basedir='.'>
<target name="makejar">
<property file="version_info.properties" />
<property name="application.title" value="GerOficios_v6" />
<property name="main.class" value="com/dfmachado/geroficios/View/ListaDeOficiosUI" />
<buildnumber file="build.num" />
<property name="build.version.num" value="${version.number}.${build.number}" />
<tstamp>
<format property="TODAY" pattern="dd/MM/yyyy - HH:mm:ss" />
</tstamp>
<property name="store.jar.name" value="GerOficios ${build.version.num}" />
<property name="store.dir" value="store" />
<property name="store.jar" value="${store.dir}/${store.jar.name}.jar" />
<echo message="Packaging ${application.title} into a single JAR at ${store.jar}" />
<mkdir dir="${store.dir}" />
<jar destfile="${store.dir}/temp_final.jar" basedir="bin" filesetmanifest="skip">
<zipgroupfileset dir="lib" includes="*.jar" />
<manifest>
<attribute name="Main-Class" value="${main.class}" />
<attribute name="SplashScreen-Image" value="com/dfmachado/geroficios/View/image/minerva.png" />
<attribute name="Build-OS" value="${os.name} version ${os.version} on ${os.arch}" />
<attribute name="Java-Version" value="${javac.source}" />
<attribute name="Implementation-Title" value="${application.title}" />
<attribute name="Implementation-Version" value="${build.version.num}" />
<attribute name="Built-By" value="${user.name}" />
<attribute name="Built-Date" value="${TODAY}" />
</manifest>
</jar>
<zip destfile="${store.jar}">
<zipfileset src="${store.dir}/temp_final.jar" excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA" />
</zip>
<delete file="${store.dir}/temp_final.jar" />
</target>
</project>
需要指出的是,eclipse 生成一个 jar 的方式与它在 netbeans 中生成的方式一样,问题是 ANT 运行两次并生成 2 个 jar,即使我只发出一次命令,如下面的打印所示:
通过命令行在同一个项目中运行ant,只创建了一个文件,显然问题是eclipse中的一些配置,但我目前还没有找到。
【问题讨论】:
-
在我的脑海中,只有一件事会导致这种情况。 ANT 是您在项目构建器中添加的构建器。 (项目->右键单击->属性->构建器)
-
@alok 太棒了!正是这个。谢谢支持,我已经不知道去哪里找了。 :)
-
@alok 如果只是手动生成jar,我不需要添加“Builders”?
-
如果工作区设置为自动构建,那么可以!