Каковы некоторые хорошие утилиты Java Make? - PullRequest
11 голосов
/ 04 октября 2008

Я ищу утилиту make для создания больших Java-программ. Я уже знаю об ANT, но хочу посмотреть, что еще доступно.

В идеале, он должен быть в состоянии справиться со странностью директории пакета .java ->. Class, которая портит GNU Make.

Win32, но кроссплатформенность это плюс.

EDIT: Я вижу некоторые недостатки в использовании ANT, поэтому я хотел увидеть другие варианты, хотя я, вероятно, в конечном итоге буду использовать его, просто потому, что он работает.

  • требует нетривиальных make-файлов XML, "HelloWorld" - это уже 25 строк, и любая более разумная программа быстро расширяется.
    • В руководствах по ant показано сравнение файлов ant build.xml, которые примерно идентичны большим файлам .bat, которые просто выполняют все команды java, только дольше. http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html, У меня уже есть один из них.
    • Xml означает, что каждая отдельная зависимость, переменная, цель, правило и проект несут в себе лишнюю хитрость, просто затрудняет чтение строк. Налог на угловые скобки
  • решает все неправильные проблемы для меня.
    • ant упрощает написание командных строк jar и javac, упрощает генерацию манифестов, упрощает указание исходных файлов .java, упрощает указание свойств jvm / java, упрощает написание пользовательских инструментов сборки.
    • ant не облегчает зависимости классов java и, похоже, не обладает более мощной системой переменных, обе эти вещи обычно решаются с помощью утилит make.

Я бы использовал gnu make, но он не может определить, где заканчивается файл .class для файла .java с объявлением пакета.

Ответы [ 13 ]

6 голосов
/ 04 октября 2008

Муравей и Мавен - это, безусловно, два стандарта. Если вы уже знакомы с Ant и хотите использовать управление зависимостями, которое поставляется с Maven, вы можете взглянуть на Ivy .

Одна вещь, которой не хватает ни Ant, ни Maven, - это настоящие структуры управления в ваших скриптах сборки. Есть плагины, которые вы можете скачать для Ant, которые предоставляют некоторые из этих элементов управления, но (опять же, если вы уже знакомы с Ant), вы можете взглянуть на Gant , который является Groovy-оболочкой для Ant. 1007 *

4 голосов
/ 04 октября 2008

Забудь АНТ !!

Apache Maven - это путь, если вы спросите меня.

Мне больше всего нравится то, что оно встроено в управление зависимостями. Это означает, что вам не нужно проверять сторонние JAR-файлы в вашем проекте контроля версий.

Вы указываете свои зависимости в POM maven (Project Object Model - это в основном XML-описание вашего проекта), и maven автоматически загружает, компилирует их и упаковывает вместе с вашим приложением.

Другие действительно хорошие функции: Публикация по управлению релизами и распространению - Выпускать релизы, используя консольные команды maven. Эта функция помечает вашу базу кода в системе контроля версий. Оформить чистую копию, собрать ее и упаковать для развертывания. Вторая команда загрузит его в ваш репозиторий для распространения среди других конечных пользователей.

Большой и растущий репозиторий библиотек, уже использующих Maven. - КАЖДЫЙ проект Apache использует Maven. НАГРУЗКИ больше на борту также. Убедитесь сами, вот главный репо

Возможность размещения собственного репо. - Где вы можете выпускать свои собственные сборки, а также загружать JAR-файлы, которых нет в других общедоступных репозиториях (например, в большинстве jar-файлов SUN)

4 голосов
/ 04 октября 2008

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

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

2 голосов
/ 11 августа 2013

муравей был лидером в течение многих лет. Но его build.xml, ну, в общем, основан на xml, он очень подробный. Управление зависимостями может быть достигнуто путем соединения его с ivy .

maven стремится предоставить из коробки то, что обеспечивает тандем муравья + плюща, приятно, пока он работает. Если он перестает это делать, и вам нужно выяснить, где он портится с управлением зависимостями, это, вероятно, будет худшим адом, который вы можете себе представить. Также это pom.xml ... написано в xml.

sbt - это инструмент сборки Royal Scala, использующий плющ для управления зависимостями, а файлы сборки записываются в DSL Scala. Вполне зрелый, но диалект скала может не понравиться.

buildr файлы сборки указаны в ruby. Совместим с репозиториями Maven и обеспечивает собственное управление зависимостями. Там тоже есть интеграция с муравьями.

gradle использует groovy для своих файлов сборки. Помимо поддержки maven или ivy, теперь у нее есть собственный менеджер зависимостей, который использовал ivy в прошлом и не был удовлетворен. Бесшовная интеграция муравьев. Имеет самый простой синтаксис на сегодняшний день.


ant, ivy, maven, buildr являются проектами apache.


TL; DR

Проверка gradle или buildr .

2 голосов
/ 04 октября 2008

Одна альтернатива - scons , если вы хотите что-то довольно легкое. Я немного его использовал и понял, что его довольно легко понять, особенно если вы уже знаете синтаксис Python. Другой вариант - maven , но он не простой. Тем не менее, он предоставляет множество дополнительных возможностей, таких как помощь в управлении документами. Однако я бы не стал называть это заменой;)

2 голосов
/ 04 октября 2008

Это не столько ответ, сколько вопрос. ANT - это стандартный способ построения Java. Он хорошо работает с Java, множеством инструментов Java и с круиз-контролем. Так почему же вы хотите попробовать что-нибудь еще?

Если у вас нет крайнего случая, который АНТ не покрывает, то я бы порекомендовал вам придерживаться АНТ.

Конечно, я был бы рад, если бы более осведомленный человек указал, почему мое отношение глупо и почему есть хороший повод для поиска альтернатив;)

1 голос
/ 04 октября 2008

Если Maven действительно не улучшился в последнее время, я бы держался подальше от этого. Если, конечно, у вас нет какого-то монстра "мульти-проекта" с зависимостью от gazillion.

После того, как надоело смотреть на совершенно бесполезные и бесполезные ошибки при попытке сделать самые простые вещи (например, FTP * файл war на сервер), Maven был выброшен, а Ant отряхнут. С тех пор я не оглядывался назад.

1 голос
/ 04 октября 2008

JMK . Это примитивно, но настолько мало, что вы можете встроить его в исходный файл .tar.gz и едва изменить его размер.

0 голосов
/ 24 октября 2009

Я использую ANT все время. Это потому, что я разрабатываю веб-приложения, используя Google Web Toolkit (GWT), в котором есть дополнительный этап компиляции клиентской части java в сценарий java. С муравьем все, что мне нужно было знать, это как работает GWT, а затем я сам организовал сборку. С Maven я должен подождать, пока кто-нибудь напишет плагин. или я сам пишу. Существует вероятность того, что появятся другие структуры и инструменты, которые не следуют обычным соглашениям. Мне не нужно постоянно искать плагины Maven. С муравьем я могу делать все, что захочу, прозрачно. Мне также нравится писать XML-файлы. (Мне нужно, потому что мне нужно написать несколько - web.xml, application.xml, persistence.xml, SqlMap.xml, dataset.xml e.t.c. Моя точка зрения - XML ​​- это то, что вам нужно научиться любить)

0 голосов
/ 14 октября 2008

Мне нравится использовать ant с ant4eclipse. Это позволяет мне устанавливать зависимости в eclipse, делать сборки разработки и тестирование в eclipse, а также делать непрерывные сборки с использованием ant.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...