Java Policy: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
(+шаблон DraftPolicy)
Строка 1: Строка 1:
[[Category:Policy]]
{{викифицировать}}
<!--{MovedFromFreesourceInfo|AltLinux/Policy/Java}-->
{{DraftPolicy
|responsible=viy}}


__TOC__
__TOC__


=== ALT Linux Java Policy: Требования к сборке java-приложений ===
=== ALT Linux Java Policy: Требования к сборке java-приложений ===
==== Необходимо соблюдать JPackage Policy ====
==== Необходимо соблюдать JPackage Policy ====


При упаковке приложений для сизифа '''необходимо''' соблюдать JPackage Policy.
При упаковке приложений для сизифа '''необходимо''' соблюдать JPackage Policy.
Ознакомиться с JPackage Policy можно в следующих местах:
Ознакомиться с JPackage Policy можно в следующих местах:
Оригинал JPackagePolicy -- можно найти в пакете jpackage-utils (в сизифе или на [http://www.jpackage.org/ www.jpackage.org] )
Оригинал JPackagePolicy — можно найти в пакете jpackage-utils (в сизифе или на [http://www.jpackage.org/ www.jpackage.org])
[[Java/JPackagePolicyTranslation|Перевод JPackagePolicy на русский.]]
[[Java/JPackagePolicyTranslation|Перевод JPackagePolicy на русский.]]
[[Java/JPackageSpecTemplate|JPackage Spec Template]] -- шаблон spec-файла для java-приложений, адаптированный для сизифа.
[[Java/JPackageSpecTemplate|JPackage Spec Template]] — шаблон spec-файла для java-приложений, адаптированный для сизифа.
см. также [[Java/ClassPathInManifest|Использование Class-Path в MANIFEST.MF]]
см. также [[Java/ClassPathInManifest|Использование Class-Path в MANIFEST.MF]]


Строка 17: Строка 19:


11.03.2006
11.03.2006
mhz: В связи с появлением в Sisyphus пакетов j2se1.5-sun{,-devel}, которые теперь  
mhz: В связи с появлением в Sisyphus пакетов j2se1.5-sun{,-devel}, которые теперь
выбираются по умолчанию в сборочной среде, появилась новая особенность при сборке пакетов на Java.  
выбираются по умолчанию в сборочной среде, появилась новая особенность при сборке пакетов на Java.
Компилятор JDK 1.5 по умолчанию создает class-файлы, несовместимые с ранними версиями J2SE.  
Компилятор JDK 1.5 по умолчанию создает class-файлы, несовместимые с ранними версиями J2SE.
Поэтому необходимо следить, чтобы в сборочных скриптах для ant или make компилятор вызывался  
Поэтому необходимо следить, чтобы в сборочных скриптах для ant или make компилятор вызывался
с параметрами source и target в значении 1.3 или меньше (т.к. у нас в Sisyphus есть еще j2se1.3-sun),  
с параметрами source и target в значении 1.3 или меньше (так как у нас в Sisyphus есть еще j2se1.3-sun),
если код не требует иного. Если в коде используется ключевое слово assert, нужно ставить как
если код не требует иного. Если в коде используется ключевое слово assert, нужно ставить как
минимум 1.4; пакетов, использующих нововведения Java SE 5, в Sisyphus пока не отмечено.
минимум 1.4; пакетов, использующих нововведения Java SE 5, в Sisyphus пока не отмечено.


viy: это актуально всегда, только сейчас у нас наименьшая JVM -- это java-1.5.0 sun.
viy: это актуально всегда, только сейчас у нас наименьшая JVM — это java-1.5.0 sun.
соответственно, фраза выглядит теперь так: source и target в значении 1.5 или меньше.
соответственно, фраза выглядит теперь так: source и target в значении 1.5 или меньше.
если пакет использует нововведения Java SE 6, то source и target в значении 1.6.
если пакет использует нововведения Java SE 6, то source и target в значении 1.6.
Строка 36: Строка 38:
  Requires: java
  Requires: java
  Requires: java-devel (if really required).
  Requires: java-devel (if really required).
Замечание. для указания минимальной версии JVM, под которой может работать программа,  
Замечание. для указания минимальной версии JVM, под которой может работать программа,
следует использовать конструкцию
следует использовать конструкцию
  Requires: java  >= 1.x.y
  Requires: java  >= 1.x.y
например, Requires: java >= 1.6.0
например, Requires: java >= 1.6.0
Если программа работает под текущую минимальную поддерживаемую JVM
Если программа работает под текущую минимальную поддерживаемую JVM
(сейчас у нас наименьшая JVM -- это java-1.5.0).
(сейчас у нас наименьшая JVM — это java-1.5.0).
то рекомендуется писать просто Requires: java без версии.
то рекомендуется писать просто Requires: java без версии.
В старых пакетах вместо Requires: java может встретиться Requires: j2se.
В старых пакетах вместо Requires: java может встретиться Requires: j2se.
Эти provides устарели, поэтому все такие вхождения следует заменить на  
Эти provides устарели, поэтому все такие вхождения следует заменить на
Requires: java.
Requires: java.


Строка 58: Строка 60:
%set_classpath /usr/share/java/foo.jar
%set_classpath /usr/share/java/foo.jar
%add_classpath /usr/share/java/bar.jar
%add_classpath /usr/share/java/bar.jar
можно заменить на  
можно заменить на
export CLASSPATH=$(build-classpath foo bar)
export CLASSPATH=$(build-classpath foo bar)
а %ant_build на %ant.
а %ant_build на %ant.


=== Java Packaging FAQ ===
=== Java Packaging FAQ ===
[[Java/JavaPackagingFAQ|Обсуждение вопросов упаковки java пакетов]] в Сизифе  
[[Java/JavaPackagingFAQ|Обсуждение вопросов упаковки java пакетов]] в Сизифе
(([[Java/JavaPackagingFAQ|JavaPackagingFAQ]] )) вынесено в отдельную страницу.
(([[Java/JavaPackagingFAQ|JavaPackagingFAQ]])) вынесено в отдельную страницу.


=== Ссылки ===
=== Ссылки ===
==== Обсуждение определителя зависимостей и загрузчика классов ====
==== Обсуждение определителя зависимостей и загрузчика классов ====
[http://lists.altlinux.org/pipermail/devel/2008-January/subject.html [devel]] Java: no magic wand / [devel] Java: no magic wand, no magic hammer
[http://lists.altlinux.org/pipermail/devel/2008-January/subject.html [devel]] Java: no magic wand / [devel] Java: no magic wand, no magic hammer
начиная с [http://lists.altlinux.org/pipermail/devel/2008-January/068361.html http://lists.altlinux.org/pipermail/devel/2008-January/068361.html].
начиная с [http://lists.altlinux.org/pipermail/devel/2008-January/068361.html http://lists.altlinux.org/pipermail/devel/2008-January/068361.html].

Версия от 18:12, 10 сентября 2008

42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.
Stub.png
Черновик политики Sisyphus
Автор(ы) — viy


ALT Linux Java Policy: Требования к сборке java-приложений

Необходимо соблюдать JPackage Policy

При упаковке приложений для сизифа необходимо соблюдать JPackage Policy. Ознакомиться с JPackage Policy можно в следующих местах: Оригинал JPackagePolicy — можно найти в пакете jpackage-utils (в сизифе или на www.jpackage.org) Перевод JPackagePolicy на русский. JPackage Spec Template — шаблон spec-файла для java-приложений, адаптированный для сизифа. см. также Использование Class-Path в MANIFEST.MF

Необходимо обеспечивать максимальную запускаемость на разных JVM

11.03.2006 mhz: В связи с появлением в Sisyphus пакетов j2se1.5-sun{,-devel}, которые теперь выбираются по умолчанию в сборочной среде, появилась новая особенность при сборке пакетов на Java. Компилятор JDK 1.5 по умолчанию создает class-файлы, несовместимые с ранними версиями J2SE. Поэтому необходимо следить, чтобы в сборочных скриптах для ant или make компилятор вызывался с параметрами source и target в значении 1.3 или меньше (так как у нас в Sisyphus есть еще j2se1.3-sun), если код не требует иного. Если в коде используется ключевое слово assert, нужно ставить как минимум 1.4; пакетов, использующих нововведения Java SE 5, в Sisyphus пока не отмечено.

viy: это актуально всегда, только сейчас у нас наименьшая JVM — это java-1.5.0 sun. соответственно, фраза выглядит теперь так: source и target в значении 1.5 или меньше. если пакет использует нововведения Java SE 6, то source и target в значении 1.6. (Не злоупотреблять. только если код написан под Java 6) пакетов, использующих нововведения Java SE 7 и выше, в Sisyphus пока не отмечено.

Необходимо избегать зависимостей на конкретную JVM

viy: явные зависимости Requires: java-X.Y.Z-vendor это ЗЛО. В пакете единственно допустимы зависимости вида

Requires: java
Requires: java-devel (if really required).

Замечание. для указания минимальной версии JVM, под которой может работать программа, следует использовать конструкцию

Requires: java  >= 1.x.y

например, Requires: java >= 1.6.0 Если программа работает под текущую минимальную поддерживаемую JVM (сейчас у нас наименьшая JVM — это java-1.5.0). то рекомендуется писать просто Requires: java без версии. В старых пакетах вместо Requires: java может встретиться Requires: j2se. Эти provides устарели, поэтому все такие вхождения следует заменить на Requires: java.

Пакеты из репозиториев jpackage.org

Не желательно собирать в Сизиф java-пакеты из репозиториев jpackage.org а также fedora.org вручную. Для этого есть робот сопровождения. Его можно взять в git, viy/packages/jppimport.git.

Устаревшие макросы.

Макросы %ant_build %set_classpath %add_classpath объявлены устаревшими. В пакетах конструкции вида %set_classpath /usr/share/java/foo.jar %add_classpath /usr/share/java/bar.jar можно заменить на export CLASSPATH=$(build-classpath foo bar) а %ant_build на %ant.

Java Packaging FAQ

Обсуждение вопросов упаковки java пакетов в Сизифе ((JavaPackagingFAQ)) вынесено в отдельную страницу.

Ссылки

Обсуждение определителя зависимостей и загрузчика классов

[devel] Java: no magic wand / [devel] Java: no magic wand, no magic hammer начиная с http://lists.altlinux.org/pipermail/devel/2008-January/068361.html.