Java/HOWTO

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Сборка с помощью maven1)
(Сборка с помощью ant)
Строка 33: Строка 33:
== Сборка с помощью ant ==
== Сборка с помощью ant ==
 +
 +
=== %prep ===
 +
 +
Обычно проекты на ant таскают с собой готовые собранные сторонние библиотеки,
 +
необходимые для сборки. Все эти библиотеки необходимо удалить
 +
find . \( -name '*.jar' -or -name '*.zip' \) -exec rm -f {} \;
 +
либо переместить:
 +
find . \( -name '*.jar' -or -name '*.zip' \) -exec mv {} {}.no \;
 +
 +
Пакеты не должны использовать при сборке эти готовые сторонние собранные библиотеки, а должны использовать вместо них библиотеки, собранные в Сизифе. Если какой-то готовой сторонней собранной библиотеки в Сизифе нет, ее необходимо сначала туда собрать.
 +
 +
Пусть, например, до удаления ls ./lib показывало
 +
ls ./lib
 +
commons-cli.jar
 +
xerces-j.jar
 +
 +
Нам нужно использовать вместо них библиотеки, собранные в Сизифе.
 +
Для этого установим в сборочную среду пакеты jakarta-commons-cli и xerces-j2.
 +
теперь добавим в проект вместо удаленных библиотек ссылки на библиотеки из Сизифа.
 +
 +
ln -s $(build-classpath commons-cli) ./lib/commons-cli.jar
 +
ln -s $(build-classpath xerces-j2) ./lib/xerces-j.jar
 +
 +
Заметим, что в Сизифе jar называется xerces-j2.jar, но в проекте ожидается xerces-j.jar.
 +
 +
=== %build ===
 +
 +
смотрим в build.xml, какие там есть цели.
 +
Нужная цель скорее всего будет одной из
 +
ant all
 +
ant jar javadoc
 +
ant dist
 +
 +
Для небольших проектов можно не заниматься наполнением ./lib, а просто
 +
перечислить все необходимые библиотеки в переменной CLASSPATH:
 +
 +
export CLASSPATH=%(build-classpath commons-cli xerces-j2)
 +
ant -Dbuild.sysclasspath=first dist
 +
 +
=== %install ===
 +
Внимательно перечитайте JPackage Policy.
 +
 +
Tips:
 +
 +
* устанавливайте arch-и jvm -независимые jar в %_javadir, arch-зависимые в %_jnidir, jvm-specific в %_javadir-ext.
 +
* не забудьте %name-%version.jar.
 +
* симлинк %name.jar и симлинки с другими употребительными именами.
 +
* Для больших проектов создавайте поддиректорию %_javadir/%name/.
== Сборка с помощью maven1 ==
== Сборка с помощью maven1 ==

Версия 12:28, 1 ноября 2008

42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.


Содержание



Предварительные сведения

Прежде чем читать данный документ, необходимо ознакомиться с ALTLinux Java Policy и JPackagePolicy. Оригинал JPackagePolicy можно найти в пакете jpackage-utils (в сизифе или на www.jpackage.org). Также доступен Перевод JPackagePolicy на русский.

Определение типа сборочной системы

тип сборочной системы можно определить по файлам в корневом каталоге проекта.

Наиболее распространенные системы сборки:

файл сборочная система
build.xml ant
maven.xml maven1
pom.xml maven2

Существуют и другие системы сборки для java, но из-за их редкости здесь они рассматриваться не будут.

Сборка с помощью ant

 %prep

Обычно проекты на ant таскают с собой готовые собранные сторонние библиотеки, необходимые для сборки. Все эти библиотеки необходимо удалить find . \( -name '*.jar' -or -name '*.zip' \) -exec rm -f {} \; либо переместить: find . \( -name '*.jar' -or -name '*.zip' \) -exec mv {} {}.no \;

Пакеты не должны использовать при сборке эти готовые сторонние собранные библиотеки, а должны использовать вместо них библиотеки, собранные в Сизифе. Если какой-то готовой сторонней собранной библиотеки в Сизифе нет, ее необходимо сначала туда собрать.

Пусть, например, до удаления ls ./lib показывало

ls ./lib
commons-cli.jar
xerces-j.jar

Нам нужно использовать вместо них библиотеки, собранные в Сизифе. Для этого установим в сборочную среду пакеты jakarta-commons-cli и xerces-j2. теперь добавим в проект вместо удаленных библиотек ссылки на библиотеки из Сизифа.

ln -s $(build-classpath commons-cli) ./lib/commons-cli.jar
ln -s $(build-classpath xerces-j2) ./lib/xerces-j.jar

Заметим, что в Сизифе jar называется xerces-j2.jar, но в проекте ожидается xerces-j.jar.

 %build

смотрим в build.xml, какие там есть цели. Нужная цель скорее всего будет одной из

ant all
ant jar javadoc
ant dist

Для небольших проектов можно не заниматься наполнением ./lib, а просто перечислить все необходимые библиотеки в переменной CLASSPATH:

export CLASSPATH=%(build-classpath commons-cli xerces-j2)
ant -Dbuild.sysclasspath=first dist

 %install

Внимательно перечитайте JPackage Policy.

Tips:

  • устанавливайте arch-и jvm -независимые jar в %_javadir, arch-зависимые в %_jnidir, jvm-specific в %_javadir-ext.
  • не забудьте %name-%version.jar.
  • симлинк %name.jar и симлинки с другими употребительными именами.
  • Для больших проектов создавайте поддиректорию %_javadir/%name/.

Сборка с помощью maven1

maven1 является устаревшим, и новые проекты мигрируют на maven2. Поэтому сборка с помощью maven1 рассматриваться не будет.

При необходимости рекомендуется найти в Сизифе пакеты с

BuildRequires: maven-plugins

или BuildRequires: maven и провести сборку, используя найденные пакеты как пример.

Сборка с помощью maven2

 
Личные инструменты