我想将我的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中。任何人都让我知道问题存在的地方
答案 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
应为src
而todir
应为bin
。
这对我有用。希望它也适合你。
答案 2 :(得分:0)
main
上的依赖项以包含copy-hbm
而不是compile
{{1}}以便您的副本运行