【问题标题】:Including .properties files while building a project using ant使用 ant 构建项目时包含 .properties 文件
【发布时间】:2019-01-16 01:14:06
【问题描述】:

如何在使用 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 文件,我想将它们包含在输出目录中,但现在没有放置在那里。对于完成此任务的任何建议,我表示感谢。

【问题讨论】:

    标签: java ant build


    【解决方案1】:

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

    <copy todir="${build.dir}">
        <fileset dir="${src.dir}">
           <exclude name="**/*.java"/>
        </fileset>
    </copy>
    

    【讨论】:

    • 可以不复制文件吗?
    • 能否请您详细说明资源文件夹应该放在哪里?我也有同样的问题。
    【解决方案2】:

    这样就可以了:

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多