已解决(见下文(
我在Github上有一个Java项目,我已经毫无问题地将其导入到Eclipse Juno中。在 Eclipse 中生成自动 ant 文件也不是问题。但是,当我将构建.xml推送到 Github 存储库并将更新的存储库克隆到另一台计算机并尝试运行 ant 时,不会创建 jar。
似乎没有办法在 Eclipse 中生成与 Eclipse 无关的 ant 文件。这种印象正确吗?我需要手动编辑 ant 文件吗?
这是一个超级简单的项目,一个文件定义对象类型,另一个文件是单元测试。
src/main/Main.java
src/test/MainTest.java
自动生成的构建.xml如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="example">
<property environment="env"/>
<property name="junit.output.dir" value="junit"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.6"/>
<property name="source" value="1.6"/>
<path id="example.classpath">
<pathelement location="bin"/>
<pathelement location="../../../../usr/share/java/junit-4.8.2/junit-4.8.2.jar"/>
</path>
<target name="init">
<mkdir dir="bin"/>
<copy includeemptydirs="false" todir="bin">
<fileset dir="src">
...... [edited]
<target name ="makejar" description="Create a jar for the project">
<jar jarfile="example.jar" includes="*.class" basedir="bin"/>
</target>
</project>
通过手动制作一个非常简单的蚂蚁文件解决了问题:
<?xml version="1.0"?>
<project name="example" default="main" basedir=".">
<property name="src.dir" location="src" />
<property name="build.dir" location="build" />
<target name="clean">
<delete dir="${build.dir}" />
</target>
<target name="makedir">
<mkdir dir="${build.dir}" />
</target>
<target name="compile" depends="clean, makedir">
<javac srcdir="${src.dir}" destdir="${build.dir}">
</javac>
</target>
<target name="jar" depends="compile">
<jar destfile="example.jar" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="main.Main" />
</manifest>
</jar>
</target>
<target name="main" depends="compile, jar">
<description>Main target</description>
</target>
</project>
好的 - 查看您的构建文件,如果您只是运行ant
,您将获得默认的目标build
。
然后这将调用(基于依赖(:
build-subprojects
- 什么都不做
build-project
- 调用init
,src
将除 Java 文件以外的所有内容复制到bin
目录,然后回显消息,然后调用javac
任何地方调用目标makejar
。 您是否尝试过发布:
ant
然后
ant makejar
当然,您可以通过使makejar
依赖于构建文件中的build
来定义它们,如下所示
<target name ="makejar" depends="build"description="Create a jar for the project">
<jar jarfile="example.jar" includes="*.class" basedir="bin"/>
</target>
但我很难看到这个构建文件在其他地方如何正确运行。