我正在尝试为刚刚从 Netbeans 移出的已建立的 java 项目编写我的第一个 build.xml 文件。
A. 我试图实现的目标非常简单:
使用下面的“dest”目标,将所有源文件(1 个包中的 4 个)复制到我要创建的 src/test 中。源文件被复制到“src/test”目录,但随后在“src/test”目录中也创建了一个“test”目录,为什么我不确定。
使用下面的“jar”目标,创建一个 jar,其中包含包名目录下的所有类文件 - 根本不起作用!
使用“编译”目标确保所有代码都编译成功,但我得到了很多错误。该代码在 Eclipse 中成功地进行了 CLEAN 和 BUILD,所以我不确定我在 ANT 脚本中做错了什么,我注意到的一件事是它试图在只有“4”个文件时编译“8”个文件。不确定其他 4 个来自哪里,尽管它表示重复。关于缺少符号的错误显示似乎是指有关构建路径中包含的所需项目的导入语句,因此我不确定如何解决 ANT 在其编译中引发的问题。
B. 这是我第一次尝试创建我的第一个 build.xml 文件,但我遇到了如下所示的问题:
<project name="ThalesDataGenerator" basedir="." default="clean-build">
<property name="src.dir" value="src"/>
<property name="dest.dir" value="${src.dir}/test"/>
<property name="dist.dir" value="dist"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/${ant.project.name}"/>
<property name="main-class" value="thalesdatagenerator.ThalesDataGenerator"/>
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${dest.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="dest">
<mkdir dir="${dest.dir}"/>
<copy todir="${dest.dir}">
<fileset dir="${src.dir}" includes="**"/>
</copy>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/ThalesDataGenerator.jar" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
</target>
<target name="clean-build" depends="clean,dest,jar,run"/>
</project>
这是我得到的错误:
- > 构建文件:C:\ATMSwitch\ThalesDataGenerator\build.xml 干净:
- > [delete] 删除目录C:\ATMSwitch\ThalesDataGenerator\build
- > 目的地:
- > [mkdir] 创建的目录:C:\ATMSwitch\ThalesDataGenerator\src\test
- > 【复制】复制4个文件到C:\ATMSwitch\ThalesDataGenerator\src\test
- > 【复制】复制2个空目录到C:\ATMSwitch\ThalesDataGenerator\src\test下1个空目录
- > 编译:
- > [mkdir] 创建的目录:C:\ATMSwitch\ThalesDataGenerator\build\classes
- > [javac] C:\ATMSwitch\ThalesDataGenerator\build.xml:22: 警告:'includeantruntime' 未设置,默认为 build.sysclasspath=last;为可重复构建设置为 false
- > [javac] 编译8个源文件到C:\ATMSwitch\ThalesDataGenerator\build\classes
- > [javac] C:\ATMSwitch\ThalesDataGenerator\src\thalesdatagenerator\ISOUtil.java:36:重复类:thalesdatagenerator.ISOUtil
- > [javac] C:\ATMSwitch\ThalesDataGenerator\src\test\thalesdatagenerator\ThalesDataGenerator.java:13: 包 common.database 不存在
- > [javac] 导入 common.database.Database;
- > [javac] ^
- > [javac] C:\ATMSwitch\ThalesDataGenerator\src\test\thalesdatagenerator\ThalesSystem.java:13: com.sharpbancsystems.atmterminals.thales 包不存在
- > [javac] 注意:C:\ATMSwitch\ThalesDataGenerator\src\test\thalesdatagenerator\ThalesDataGenerator.java 使用未经检查或不安全的操作。
- > [javac] 注意:使用 -Xlint 重新编译:未选中详细信息。
[javac] 18 个错误
构建失败
C:\ATMSwitch\ThalesDataGenerator\build.xml:22:编译失败;有关详细信息,请参阅编译器错误输出。
总时间:874 毫秒
任何帮助/方向将不胜感激。问候。