муравей + свойства + свойства - PullRequest
0 голосов
/ 05 июля 2010

В 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>

Как мне обойти это без необходимости повторного ввода полного пути к пакету для каждого пакета?

1 Ответ

1 голос
/ 05 июля 2010

Используйте атрибут value для свойства вместо location :

 <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...