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.

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