Ant 构建不会复制 xml 文件



我想将我的休眠配置 xml 文件复制到内置 POJO 的 jar 中。以下是我的蚂蚁构建.xml文件(我从这里得到这个)

  <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 文件,但休眠配置 xml 不会复制到 jar 中。任何人都让我知道问题可能存在的地方

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

我修改了复制 hbm 目标,如下所示。

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

我所做的更改是,include="*.xml"被替换为name="**/*.xml"。路径定义是错误的。 应该为这个问题提供一些学分,因为我选择了他设置包含类路径的方式

我能够通过将您的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应该是src的,todir应该是bin的。

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

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

相关内容

  • 没有找到相关文章