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.