Ant构建不会复制xml文件

时间:2014-12-08 05:31:32

标签: java ant

我想将我的hibernate配置xml文件复制到一个属于POJO的jar中。以下是我的ant build.xml文件(我从here获得了这个)

  <project name="Ant-Test" default="main" basedir=".">
  <!-- Sets variables which can later be used. -->
  <!-- The value of a property is accessed via ${} -->
  <property name="src.dir" location="src"/>
  <property name="build.dir" location="bin"/>
  <property name="dist.dir" location="dist"/>
  <property name="docs.dir" location="docs"/>
  <!-- Deletes the existing build, docs and dist directory-->
  <target name="clean">
    <delete dir="${build.dir}"/>
    <delete dir="${docs.dir}"/>
    <delete dir="${dist.dir}"/>
  </target>
  <!-- Creates the  build, docs and dist directory-->
  <target name="makedir">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${docs.dir}"/>
    <mkdir dir="${dist.dir}"/>
  </target>
  <!-- Compiles the java code (including the usage of library for JUnit -->
  <target name="compile" depends="clean, makedir">
    <javac srcdir="${src.dir}" destdir="${build.dir}">
      <classpath>
        <pathelement path="/jars/log4j.jar"/>
      </classpath>
    </javac>
  </target>
  <!-- copy hbm files ${dist.dir} -->
    <target name="copy-hbm" depends="compile" description="Copy hibernate files">
        <copy todir="${build.dir}" >
            <fileset dir="${src.dir}" includes="*.xml" />
        </copy>
    </target>
  <!-- hbm copy over -->
  <!-- Creates Javadoc -->
  <target name="docs" depends="compile">
    <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
      <!-- Define which files / directory should get included, we include all -->
      <fileset dir="${src.dir}">
        <include name="**"/>
      </fileset>
    </javadoc>
  </target>
  <!--Creates the deployable jar file  -->
  <target name="jar" depends="compile">
    <jar destfile="${dist.dir}\my-hibernate-pojo.jar" basedir="${build.dir}">
      <manifest>
        <attribute name="Main-Class" value="test.Main"/>
      </manifest>
    </jar>
  </target>
  <target name="main" depends="copy-hbm, jar">
    <description>Main target</description>
  </target>
</project>

这会生成jar文件但是hibernate配置xml不会被复制到jar中。任何人都让我知道问题存在的地方

3 个答案:

答案 0 :(得分:4)

首先,我感谢所有回答我问题的人 我发现错误的问题包括xml文件名params。在这里,我发布了我发现的解决方案,因为这可能有助于其他人。

我将copy-hbm目标修改为以下工作。

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

我所做的更改是, includes =“*。xml”被替换为name =“** / *。xml”。路径定义错了。当我选择设置包含类路径

的方式时,应该向this问题提供一些学分

答案 1 :(得分:2)

我能够通过将您的copy-hbm目标更改为以下内容来实现目标:

<target name="copy-hbm" depends="compile" description="Copy hibernate files">
    <copy todir="${build.dir}" >
        <fileset dir="${src.dir}" includes="*.xml" />
    </copy>
</target>

唯一的变化是dir应为srctodir应为bin

这对我有用。希望它也适合你。

答案 2 :(得分:0)

  1. 更改main上的依赖项以包含copy-hbm而不是compile {{1}}以便您的副本运行
  2. 将复制任务或jar任务更改为具有相同的目标/来源。您当前正在将xml文件复制到build.dir,然后将dest.dir
  3. 打乱