我们正在使用包含一些常见部分的不同模式文件的Jaxb。 为了构建它,我们使用了JAXB发行版中的Ant XJCTask:
<xjc classpath="bin" removeOldOutput="yes" schema="main-schema.xsd" target="src" extension="true">
<arg value="-no-header"/>
<depends dir=".">
<filename name="some/dir/included1.xsd"/>
</depends>
<produces dir=".">
<include name="some/package/dir/*.java"/>
</produces>
</xjc>
但显然,依赖没有影响,因为人们可以看到运行ant -verbose:
[xjc] Checking timestamp of /local0/mginkel/workspace/main-schema.xsd
[xjc] Checking timestamp of /local0/mginkel/workspace/some/package/dir/Generated1.java
[xjc] Checking timestamp of /local0/mginkel/workspace/some/package/dir/Generated2.java
有没有办法在ant中正确跟踪包含依赖项。我只想重新编译 必要时绑定,但我肯定想重新编译其中一个包含已更改。 (这是目前无效的。)
答案 0 :(得分:0)
我认为您的dir
设置错误。这是我们在工作中使用的那个(它适用于我们):
<xjc schema="${xsd.location}/eviction.xsd" destdir="${src}"
package="com.onsitemanager.eviction.schema">
<produces dir="${src}/com/onsitemanager/eviction/schema" includes="*.java"/>
</xjc>
(不要过于担心${xsd.location}
和${src}
的价值,只要它们对您存储.xsd文件和源的位置的设置是明智的。文件,分别。)
值得注意的是dir
是输出.java文件的目录,而includes
只是*.java
。