我想将我的休眠配置 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
的。
这对我有用。希望它也适合您。
- 更改对
main
的依赖关系以包含copy-hbm
而不是compile
以便您的副本运行 - 将复制任务或 jar 任务更改为具有相同的目标/源。 您当前正在将 xml 文件复制到 build.dir,然后发出 dest.dir 的 干扰