На java.net открыт проект Gosling. Это сборщик проектов из изходного кода Java-программ, подобный Ant-у, но без использования XML-конфигурационных файлов, конфигурация сборки описывается прямо исходным кодом на языке Java.
Судя по всему это ответ на Rake. Кто не знает, это Make для Ruby, написанный на Ruby
В общем не ответ это никакой на болячки ant ....
Ант и так позволил людям писать скрипты вместо билдов, в итоге билдя перестали быть инкрементальными.
Да java страдает от отсутствия нормального make, но это не повод пложить antы
Проэкт обречен ничем не лучше Ант, опять придется писать скрипты. Самый совершенный билд тул это Maven2. Это даже не тул а просто модель проекта, а сборка это просто набор плагинов. Это освобождает пользователя от написание скриптов как таковых. К тому же Maven имеет хорошее побочное свойство. Он подспудно заставляет разработчиков строить свой проэкт одинаковым образом. А то сколько проэктов не смотришь у каждого свое мнение как должны располагаться папки в проэкте. А это очень усложняет понимание проэкта порой.
Maven2 - это не столько билд-тул, это скорее средство управления проектом, платформа для интеграции разных аспектов (отчеты, кодогенерация, сайт проекта, управление релизами, взаимодействие между командами, деплоймент, тестирование, управление зависимостями, и.т.д) в жизненный цикл проекта.
насчёт болячек и гадостей анта:
Если вы видели ant то скорее всего знаете что заставить его допустим выполнить target для каждого файла соответствующего паттерну нельзя, то
что было в make так просто.
Скажите как в ant написать
%.o: %.cpp
gcc -c -MD $<
Никак, в итоге все качают ant-contrib и пишут скрипты на анте, в итоге получаем кашу малу.
Для каждого чиха приходится писать свои таски.
Ант хорош ровно пока ваш проект состоит из java файлов, как только прикручиваем какие-нибудь тулы получаем пляски с бубном.
> Если вы видели ant то скорее всего знаете что заставить его допустим выполнить target для каждого файла соответствующего паттерну нельзя, то что было в make так просто.
> Скажите как в ant написать %.o: %.cpp gcc -c -MD $< > Никак, в итоге все качают ant-contrib и пишут скрипты на анте, в итоге получаем кашу малу.
Кроме того, можно передать patternset (по id) в качестве параметра нужному target'у.
> Для каждого чиха приходится писать свои таски. > Ант хорош ровно пока ваш проект состоит из java файлов, как только прикручиваем какие-нибудь тулы получаем пляски с бубном.
Не знаю, какой "чих" кому нужен и для чего. Вот пример выкладки EAR'а на WebSphere с помощью административных утилит на TCL'е.
> Что не мешает всем, кому надо, пользоваться ее преимуществами и скоростью уже со второй беты
Вы слова "deployment" и "production" слышали? Я бы не рискнул на сервер ставить Java SE 6 до тех пор, пока не выйдет 1.6.0.3. Пусть сначала исправят ошибки.
Гм. Может это конечно и офтопик, но почему адепты мелкомягкого обходятся без ant-оподобного чего-либо? И таки где почитать почему стали пользоваться ant-ом вместо make-а?
Чтобы работало в одной VM. Джавовские прожки собираются в основном джавовскими тулами, запуск которых требует поднятия VM. Простой компилятор в мейке запускается и гаснет много раз - на файлики которые не компилятся по deps - в итоге это медленно. А есть еще доки, тесты, стайлчеки - короче много. Если vm запускается 1 раз все существенно быстрее.
Даже после выхода первой версии maven (не говоря уже про maven 2) пользоваться антом, мягко говоря, напрягает. А то что ант во всю используется jboss, так это пережитки прошлого, им очень тяжело перевести запутаные build.xml на нормальную структуру maven. Хотя не все так запущено. По форумам активные обсуждения о переходе ведуться. И jboss уже сделал и потихоньку наполняет либами свой maven 2 репозиторий.
>то что ант во всю используется jboss, так это пережитки прошлого, им очень тяжело перевести запутаные build.xml на нормальную структуру maven.
Не надо писать запутанные скрипты:) А то есть такой странный синдром, не знаю как назвать: когда народ думает, что на основном языке поекта надо писать грамотно - а все остальное, включая организацию самого проекта - абы как. Лично у меня все проекты (штук 20) собираются одним ант скриптом. Вернее его есть 2 скрипта в каждом проекте: для сборки dist и для cruisecontrol, который вызывает первый для dist, но еще интегрирован в development environment, mediawiki, тесты, таггинг version control, и прочая фигня.
P.S. Против мавен ничего не имею - перелезу при вервой же возможности.