Изменить путь сборки проекта с помощью Apache Ant в Eclipse - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть ant-скрипт, который выполняет типично: clean, compile, jar, javadocs и т. Д. У меня также есть 3 проекта в Eclipse: библиотека и 2 проекта для его тестирования.

В пути сборкииз этих 2-х тестовых проектов я определил в качестве внешнего jar библиотечный jar, расположенный в проекте библиотеки.

В jar библиотеки есть его версия в имени jar, т.е. library-0.1.jar.В ant-скрипте у меня есть свойство с версией библиотеки:

<property name="project_version" value="0.1"/>

Поэтому, чтобы изменить версию, я изменяю это свойство и снова запускаю скрипт.Как вы можете сделать вывод, это вызывает ошибку зависимости в 2 других проектах, потому что они все еще будут указывать на старый файл library-0.1.jar.

Как я могу автоматически изменить путь сборки этих 2 других проектов вЗатмение?Apache ant может сделать это с помощью определенного тега?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 15 апреля 2011

Обратитесь к версии с переменной во всех ваших файлах сборки, например,

<include name="my-${version}.jar"/>

Теперь, когда вы выполняете свои сборки, вы можете выполнить с явной версией, чтобы соответствовать тому, что вам нужно, например,

ant -Dversion=1.3

Кроме того, вы можете загрузить один и тот же файл свойств в каждый из ваших сценариев сборки, чтобы загрузить свойство версии

<property file="version.properties">

Обратите внимание, что если вы выберете последний вариант, вы должны удалить объявление свойства (из вашего поста выше), которое устанавливает значение явно. Либо так, либо сначала загрузите файл свойств. ....

2 голосов
/ 15 апреля 2011

Используйте sed, например (не проверено):

version=2
sed s/value="\d+"/value="$version"/g build.xml
0 голосов
/ 15 апреля 2011

РЕДАКТИРОВАТЬ : Используя метод ниже, вы сможете скомпилировать с помощью Ant, но eclipse покажет вам ошибку зависимости в проводнике проекта, потому что вы не определили ни одного внешнего jar-файла в пути сборки. панель. Чтобы решить эту проблему, вы должны отредактировать файл .classpath, который вы увидите в корне проекта, и добавить следующую строку:

<classpathentry kind="lib" path="../Library/bin"/>

Где библиотека - это папка для проекта библиотеки и папка для классов.




решаемые :

Я должен написать ant-скрипт для 2 других проектов и установить путь к классу с помощью скрипта, а не с IDE eclipse:

<path id="build-classpath">
    <fileset dir="${dist}">
        <include name="${project_name}-${project_version}.jar"/>
    </fileset>
</path>

$ {dist} - это папка, в которой находится библиотека jar, это что-то вроде: "../Library/dist", где Library - это имя проекта.
$ {project_name} и $ {project_version} загружаются из файла version.properties, который, опять же, хранится в "../Library":

<property file="..Library/version.properties"/>

Файл version.properties содержит только:

project_name=LibraryName
project_version=0.1

Затем, чтобы добавить classpath при компиляции ...

<target name="compile" depends="clean, makedir">
    <javac srcdir="${src}" destdir="${bin}">
        <classpath refid="build-classpath"/>
    </javac>
</target>

Значение refid - это идентификатор пути, определенный ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...