7

如何在使用 Ant 编译项目的源代码时包含 .properties、.xml 和其他资源文件?这是我的构建文件:

<?xml version="1.0"?>
<project name="NmzAzzist" basedir="." default="main">
    <property name="src.dir" value="Source/Myproj" />
    <property name="build.dir" value="ReleaseBuild/classes" />
    <property name="jar.dir" value="ReleaseBuild" />

    <path id="master-classpath">
        <fileset dir="lib">
            <include name="*.jar" />
        </fileset>
    </path>

    <target name="clean" description="Clean output directories">
        <delete dir="${build.dir}" />
    </target>

    <target name="build" description="Compile source tree java files">
        <echo>Compiling the source code</echo>
        <mkdir dir="${build.dir}" />
        <javac destdir="${build.dir}" source="1.5" target="1.5" includeantruntime="false">
            <compilerarg value="-Xlint:unchecked" />
            <src path="${src.dir}" />
            <classpath refid="master-classpath" />

        </javac>
    </target>

    <target name="jar" depends="build">
        <mkdir dir="${jar.dir}" />
        <echo>building jar!</echo>

        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${build.dir}">
            <manifest>
                <attribute name="Main-Class" value="com.ushustech.nmsazzist.NMSAzzistApp" />
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar">
        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true" />
    </target>

    <target name="main" depends="clean,run" />

</project>

现在我的构建只是编译 Java 文件和生成类。但是我在各种文件夹(包括源文件夹)中有一些属性和 XML 文件,我想将它们包含在输出目录中,但现在没有放置在那里。我感谢完成这项任务的任何建议。

4

2 回答 2

9

jar在运行任务之前复制这些资源文件。

<copy todir="${build.dir}">
    <fileset dir="${src.dir}">
       <exclude name="**/*.java"/>
    </fileset>
</copy>
于 2012-11-28T08:12:04.350 回答
0

这可以解决问题:

<target name="dist" depends="compile">
    <echo>packaging classes</echo>
    <jar jarfile="${dist.dir}/${project.distname}.jar" basedir="${build.dir}">
      <fileset dir="${src}">
        <include name="*.properties" />
      </fileset>
    </jar>
 </target>
于 2019-01-15T17:14:06.067 回答