在ant脚本中,我只想编译某些包,例如
com.example.some_package.foo
com.example.some_package.bar
这是我想要做的事情,但它似乎不起作用,因为属性替换似乎不适用于<include>
标记:
<property name="ROOT_PKG_PATH" location="com/example/some_package"/>
...
<target name="compile-client" depends="init">
<javac srcdir="${srcDir}"
destdir="${buildDir}"
debug="on"
target="1.5"
classpathref="build.classpath">
<include name="${ROOT_PKG_PATH}/foo/**" />
<include name="${ROOT_PKG_PATH}/bar/**" />
</javac>
</target>
如何在不必重新键入每个包的整个包路径的情况下解决这个问题?
答案 0 :(得分:1)
使用属性上的值属性,而不是位置:
<property name="ROOT_PKG_PATH" value="com/example/some_package"/>
我能够有条件地编译我的一个java类:
./src/some_package/demo1/Demo.java
./src/some_package/demo2/Demo.java
./build/classes/somepackage/demo1/Demo.class
./build.xml
使用以下ANT文件:
<project name="demo" default="compile">
<property name="prop" value="some_package/demo1"/>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes">
<include name="${prop}/**"/>
</javac>
</target>
</project>