Как динамически создать файл Java в определенном пакете, используя задачу Ant concat? - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть файл сценария Ant, в котором я использую задачу concat для создания файла курса Java в указанном пакете, который определен в файле свойств.

Например, я определяю пакетимя:

ma.package=com.my.package

В сценарии Ant я вызываю:

<concat destfile="./${prject.root}/${ma.package}/MyClass.java">

Однако MyClass.java было создано в подпапке com.my.package вместо структуры папки com\my\package,Как это исправить?

Я использую Eclipse Helios под Windows XP.

1 Ответ

1 голос
/ 12 декабря 2011

Вы можете использовать PathConvert с вложенным UnpackageMapper для преобразования имени пакета в путь.Например:

<project default="test">

  <property name="ma.package" value="com.my.package"/>

  <target name="test">
    <pathconvert property="ma.package.dir">
      <path path="${ma.package}"/>
      <unpackagemapper from="*" to="*"/>
    </pathconvert>
    <echo message="ma.package : ${ma.package}"/>
    <echo message="ma.package.dir : ${ma.package.dir}"/>
  </target>

</project>

Вывод:

Buildfile: C:\tmp\ant\build.xml

test:
 [echo] ma.package : com.my.package
 [echo] ma.package.dir : C:\tmp\ant\com\my\package

Таким образом, вы можете использовать преобразованное значение свойства в вашем concat:

<concat destfile="${ma.package.dir}/MyClass.java">
...