LINUX.ORG.RU

Gosling взамен Maven и Ant


0

0

На java.net открыт проект Gosling. Это сборщик проектов из изходного кода Java-программ, подобный Ant-у, но без использования XML-конфигурационных файлов, конфигурация сборки описывается прямо исходным кодом на языке Java.

Судя по всему это ответ на Rake. Кто не знает, это Make для Ruby, написанный на Ruby

>>> Подробности

anonymous

Проверено: Shaman007 ()

а как её надо было назвать? Jake ? )

anonymous
()
Ответ на: комментарий от dmiceman

а почитать по ссылке? The name refers to the "Ugly Duckling" fairy tale instead of James Gosling

JFreeM ★★★☆
()

В общем не ответ это никакой на болячки ant ....
Ант и так позволил людям писать скрипты вместо билдов, в итоге билдя перестали быть инкрементальными.

Да java страдает от отсутствия нормального make, но это не повод пложить antы

anonymous
()

выглядит отстойно ant make файлы можно хотя бы генерить автоматом, а тут пока не понятно...

anonymous
()

Проэкт обречен ничем не лучше Ант, опять придется писать скрипты. Самый совершенный билд тул это Maven2. Это даже не тул а просто модель проекта, а сборка это просто набор плагинов. Это освобождает пользователя от написание скриптов как таковых. К тому же Maven имеет хорошее побочное свойство. Он подспудно заставляет разработчиков строить свой проэкт одинаковым образом. А то сколько проэктов не смотришь у каждого свое мнение как должны располагаться папки в проэкте. А это очень усложняет понимание проэкта порой.

Nicht
()

Maven2 - это не столько билд-тул, это скорее средство управления проектом, платформа для интеграции разных аспектов (отчеты, кодогенерация, сайт проекта, управление релизами, взаимодействие между командами, деплоймент, тестирование, управление зависимостями, и.т.д) в жизненный цикл проекта.

WFrag ★★★★
()
Ответ на: комментарий от anonymous

> Да java страдает от отсутствия нормального make, но это не повод пложить antы

Это почему это страдает? Чем плох Ant?

anonymous
()

Исправьте, а то глаза жутко режет: "иЗходного". Там "с" вообще то ;)

stave ★★★★★
()
Ответ на: комментарий от anonymous

> никакой на болячки ant

А конкретнее можно? Чем так плох Ant?

kda ★★★★★
()
Ответ на: комментарий от dmiceman

> название конечно потрясающее..

У rake? ;-) Это точко, программа собрана рэйком... :) Всё там рэйком... 8)

atrus ★★★★★
()
Ответ на: комментарий от anonymous

насчёт болячек и гадостей анта:

Если вы видели ant то скорее всего знаете что заставить его допустим выполнить target для каждого файла соответствующего паттерну нельзя, то 
что было в make так просто.

Скажите как в ant написать
%.o: %.cpp
        gcc -c -MD $<
Никак, в итоге все качают ant-contrib и пишут скрипты на анте, в итоге получаем кашу малу.

Для каждого чиха приходится писать свои таски.
Ант хорош ровно пока ваш проект состоит из java файлов, как только прикручиваем какие-нибудь тулы получаем пляски с бубном.

anonymous
()
Ответ на: комментарий от anonymous

> насчёт болячек и гадостей анта:

> Если вы видели ant то скорее всего знаете что заставить его допустим выполнить target для каждого файла соответствующего паттерну нельзя, то что было в make так просто.

> Скажите как в ant написать %.o: %.cpp gcc -c -MD $< > Никак, в итоге все качают ant-contrib и пишут скрипты на анте, в итоге получаем кашу малу.

Хм. Это делается примерно так:

<target name="compile"> <javac> <src path="..."/> <include name="**/*.jsp"/> <include name="**/*.java"/> </javac> </target>

Кроме того, можно передать patternset (по id) в качестве параметра нужному target'у.

> Для каждого чиха приходится писать свои таски. > Ант хорош ровно пока ваш проект состоит из java файлов, как только прикручиваем какие-нибудь тулы получаем пляски с бубном.

Не знаю, какой "чих" кому нужен и для чего. Вот пример выкладки EAR'а на WebSphere с помощью административных утилит на TCL'е.

<target name="deploy" depends="ear"> <exec dir="." executable="cmd.exe" os="Windows 2000"> <arg line="/c wsadmin -f ${was.script.dir}\install-app.tcl"/> </exec> <exec dir="." executable="wsadmin.sh" os="Linux"> <arg line="-f ${was.script.dir}/install-app.tcl"/> </exec> </target>

По-моему, все прозрачно. Или таки нет?

onz
()

бред

r ★★★★★
()
Ответ на: комментарий от anonymous

Вы не можете передавать списки файлов в качестве аргументов!
Для каждого чиха приходится писать таск ....

anonymous
()

Надо скачать, посмотреть. Вообще, это хорошо, что решили ант заимпрувить. Плохо, что заточено под 6-ю яву. ;( Она зарелизится-то только через месяц.

schakal
()
Ответ на: комментарий от anonymous

> Никак, в итоге все качают ant-contrib и пишут скрипты на анте, в итоге получаем кашу малу.

И где-же эта каша мала? Все работает. Не нравится - напиши лучше. Исходники тебе доступны.

> Ант хорош ровно пока ваш проект состоит из java файлов, как только прикручиваем какие-нибудь тулы получаем пляски с бубном.

Для начала читаем маны, и удивляемся, что ant предназначен для сборки ява-приложений. А все остальное - от лукавого.

schakal
()
Ответ на: комментарий от anonymous

Если вам так нравиться make, так что же вы его не используете?

Ant создавался теми кому не нравился и не подходил в силу ряда обстоятельств make. Утилиту make ничто не мешает использовать для java.

anonymous
()
Ответ на: комментарий от schakal

>Плохо, что заточено под 6-ю яву. ;( Она зарелизится-то только через месяц.

Что не мешает всем, кому надо, пользоваться ее преимуществами и скоростью уже со второй беты

anonymous
()
Ответ на: комментарий от anonymous

> Что не мешает всем, кому надо, пользоваться ее преимуществами и скоростью уже со второй беты

Вы слова "deployment" и "production" слышали? Я бы не рискнул на сервер ставить Java SE 6 до тех пор, пока не выйдет 1.6.0.3. Пусть сначала исправят ошибки.

schakal
()
Ответ на: комментарий от anonymous

> Вы много видели больших проектов на java которые кроме java ничего не содержат?

Да. Много. Посмотри, для примера, на JBoss AS. Собирается ant-ом и написан на чистой Java.

schakal
()
Ответ на: комментарий от anonymous

> Напишите мне правило превращения ЛЮБОГО файла в другой файл - не только java.

Сами то поняли что написали?

kda ★★★★★
()

Гм. Может это конечно и офтопик, но почему адепты мелкомягкого обходятся без ant-оподобного чего-либо? И таки где почитать почему стали пользоваться ant-ом вместо make-а?

eXOR ★★★★★
()
Ответ на: комментарий от eXOR

> Может это конечно и офтопик, но почему адепты мелкомягкого обходятся без ant-оподобного чего-либо?

http://nant.sourceforge.net/ http://ant.apache.org/antlibs/dotnet/

> таки где почитать почему стали пользоваться ant-ом вместо make-а?

http://ant.apache.org/manual/intro.html

Чтобы работало в одной VM. Джавовские прожки собираются в основном джавовскими тулами, запуск которых требует поднятия VM. Простой компилятор в мейке запускается и гаснет много раз - на файлики которые не компилятся по deps - в итоге это медленно. А есть еще доки, тесты, стайлчеки - короче много. Если vm запускается 1 раз все существенно быстрее.

r ★★★★★
()
Ответ на: комментарий от r

Даже после выхода первой версии maven (не говоря уже про maven 2) пользоваться антом, мягко говоря, напрягает. А то что ант во всю используется jboss, так это пережитки прошлого, им очень тяжело перевести запутаные build.xml на нормальную структуру maven. Хотя не все так запущено. По форумам активные обсуждения о переходе ведуться. И jboss уже сделал и потихоньку наполняет либами свой maven 2 репозиторий.

anonymous
()
Ответ на: комментарий от anonymous

>то что ант во всю используется jboss, так это пережитки прошлого, им очень тяжело перевести запутаные build.xml на нормальную структуру maven.

Не надо писать запутанные скрипты:) А то есть такой странный синдром, не знаю как назвать: когда народ думает, что на основном языке поекта надо писать грамотно - а все остальное, включая организацию самого проекта - абы как. Лично у меня все проекты (штук 20) собираются одним ант скриптом. Вернее его есть 2 скрипта в каждом проекте: для сборки dist и для cruisecontrol, который вызывает первый для dist, но еще интегрирован в development environment, mediawiki, тесты, таггинг version control, и прочая фигня.

P.S. Против мавен ничего не имею - перелезу при вервой же возможности.

r ★★★★★
()
Ответ на: комментарий от anonymous

>Вы не можете передавать списки файлов в качестве аргументов!

Можем!!

Приблизительно так: <target name="compilej2" description="Компиляция исходников (приблизительно).">

<delete dir="${compile.dir}" failonerror="false" />

<mkdir dir="${compile.dir}" />

<path id="srcfiles.path">

<fileset dir="${source.dir}">

<include name="**/*" />

<exclude name="**/*Test*" />

</fileset>

</path>

<pathconvert pathsep=" " property="javafiles" refid="srcfiles.path" />

<java classname="com.sun.tools.javac.Main" fork="true">

<classpath>

<path refid="tools.classpath" />

<path refid="j2me.classpath" />

</classpath>

<arg value="${javafiles}" />

<arg line="-target 1.3 -d" />

<arg file="${compile.dir}" />

</java>

</target>

>Для каждого чиха приходится писать таск ....

А это плохо?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.