【发布时间】:2013-10-11 10:23:05
【问题描述】:
以下是 Java 项目的 build.xml 的简化版本。它正确完成“构建”(创建正确的 .class 文件)并打印出“完成构建”。但是,它不会打印出“Starting jar”。我不明白什么?目标“jar”依赖于“build”,所以接下来应该运行它。
使用目标版本运行它。
<?xml version="1.0"?>
<project name="Project" basedir="." default="release">
<!-- directories -->
<property name="src.dir" location="src/main/java"/>
<property name="cls.dir" location="private/classes"/>
<property name="lib.dir" location="lib"/>
<property name="jar.name" value="${ant.project.name}-${jar.ver}.jar"/>
<target name="clean" description="Delete all generated files">
<delete dir="${cls.dir}"/>
<delete dir="${lib.dir}"/>
</target>
<target name="build" depends="clean">
<mkdir dir="${cls.dir}"/>
<javac
destdir="${cls.dir}"
nowarn="off"
fork="yes"
debug="on">
<classpath>
<path path="${run.classpath}"/>
</classpath>
<src path="${src.dir}"/>
</javac>
<echo message="Finishing build"/>
</target>
<target name="jar" depends="build">
<echo message="Starting jar"/>
<mkdir dir="${lib.dir}"/>
<jar destfile="${lib.dir}/${jar.name}">
<fileset dir="${cls.dir}"/>
<fileset dir="${src.dir}" includes="**/*.properties"/>
<fileset dir="${src.dir}" includes="**/*.xml"/>
</jar>
</target>
<target name="release" depends="jar" description="Entry point">
</target>
</project>
【问题讨论】:
-
运行目标时使用的命令是什么?你在运行 jar 目标吗?
-
随发布运行,jar 部分不运行。如果我用 jar 运行,那么 jar 也会运行。当我使用 release 运行时,我希望 jar 运行..
-
尝试使用 "ant -v" 运行以获得详细输出,看看是否能给您提供线索。
-
运行命令
ant -d release。您可能希望将该输出重定向到文件。开始将向您展示它为找出依赖矩阵所做的计算。顺便说一句,你不应该让你的build依赖于clean。您可以让release依赖于clean,jar,但您希望开发人员能够在不清除所有已构建的类文件的情况下进行构建。