[devel] Re: Q: java development

Vladimir Lettiev =?iso-8859-1?q?crux_=CE=C1_syktsu=2Eru?=
Чт Сен 16 14:09:42 MSD 2004


Mikhail Zabaluev пишет:
>>Надо опубликовать эту policy даже если она ещё полностью не оформлена. 
> 
> В данный момент она существует главным образом в моей голове :)
> Надо оформить в документ, конечно.
> 
Ok. Я подготавливаю свой draft, можно его будет обсудить.

Я не дождался вашего ответа и предпринял разведку боем: позавчера в 
Сизиф ушли 13 java-пакетов:
jakarta-commons-collections, jakarta-commons-daemon, 
jakarta-commons-daemon-jsvc, jakarta-commons-beanutils, 
jakarta-commons-pool, jakarta-commons-launcher, servletapi5, 
jakarta-commons-el, jakarta-commons-digester, jakarta-regexp, jmx, jndi, 
jakarta-commons-dbcp

Вообще их сборка для меня была нужна для того, чтобы как следует 
разобраться в процессе сборки java-пакетов. За их майнтейнерство я не 
держусь, поэтому отдам по первому обоснованному требованию. Пакеты 
выбраны по простому принципу: я просто иду по списку зависимостей tomcat5.
В сборке я придерживался стандартной полиси jpackage, т.е. туча 
симлинков, но зависимости выставлял только самые необходимые.

>>Очень важный момент это правила именования jar'ов (делать ли симлинки?), 
>>поскольку практически в каждом спеке в CLASSPATH должны явно указыватся 
>>пути к этим файлам.
> 
> Я убрал симлинки на версии. Rationale: версии поддерживаются
> rpm и выясняются с помощью его же, а для CLASSPATH они
> не нужны и даже вредны.
> То же с javadoc-каталогами: не удалось найти ни одной причины, почему
> они должны иметь полные номера версий.
> 
> Из других изменений: все явно библиотечные (т.е. не используемые
> напрямую через launcher'ы и проч.) пакеты отнесены в Development/Java,
> иным группы даются по функциональной принадлежности.
> У библиотечных пакетов не ставятся requires на j2se, другие
> java-пакеты, за исключением очевидных жестко заданных случаев.
> У пакетов c launcher'ами (напр. ant, tomcat), наоборот, ставятся
> все requires, необходимые для работы.
> 

Да, вы совершенно правы.
Только я бы ещё предложил создавать симлинк на то имя (*.jar), которое 
изначально задумано разработчиком. Например, jakarta-commons-logging.jar 
<-> commons-logging.jar. Поскольку во многих зависимых пакетах в 
build.xml/build.properties заложены именно такие имена jar'ов.

И ещё все java-пакеты должны зависеть от java-common.

>>У меня есть предложения по изменениям в пакетах java-common и 
>>j2se1.4-sun-doc. Как это лучше обсудить, через bugzilla, рассылку или в 
>>личной переписке?
> 
> В рассылку и Cc: мне -- я сейчас читаю рассылки в мерцающем режиме :(
> Если есть серьезные проблемы, требующие вмешательства, заносите в bugzilla.
> 

Предложения такие.
В пакете j2se1.4-sun-doc создавать симлинк или альтернативу (если вдруг 
ещё есть пакеты, которые провайдят доки):
/usr/share/javadoc/java -> /usr/share/doc/j2se-sun-1.4.2/api

Чтобы при сборке javadoc некоторых пакетов указывать именно такой путь 
(не зависящий от версии SDK), поскольку многие пакеты лезут в инет за 
этой документацией при сборке...

По пакету java-common. Нужно выделить в нём подпакет java-common-devel, 
куда внести хотя бы общие rpm-макросы:

%define _javadir %_datadir/java
%define _javadocdir %_datadir/javadoc
%define _j2sedocdir %_javadocdir/java
%define _javahome %_libdir/jdk

А также расширить кол-во функций. Например, нужна функция, аналог 
AddToClasspath, но не сама экспортирующая CLASSPATH, а просто 
возвращающая его в виде строки. В идеале бы функцию, которая сама 
экспортнёт всё что найдёт в %_javadir ;)

-- 
С уважением, Владимир Леттиев aka crux <crux на syktsu.ru>




Подробная информация о списке рассылки Devel