Построение Java-проекта - PullRequest
       14

Построение Java-проекта

0 голосов
/ 09 августа 2011

У меня есть вопрос, связанный со строительством проекта в Java.

Когда я пытался найти несколько хороших примеров проектов, использующих Gradle в качестве системы построения, я искал в Google Code.

Были некоторые, и я попытался проверить этот проект и изучил связанный файл build.gradle: http://code.google.com/p/spock/source/browse/trunk/spock-example/build.gradle?r=1316


Теперь я могу легко построить этот проект, используя командную строку и все зависимостикрасиво и автоматически разрешены.Однако автоматическая сборка также генерирует проект IntelliJ IDEA.

Итак, вопрос .

Я уверен, что существует множество проектов на основе Gradle.паутина.Как эти строительные системы, такие как Gradle, интегрируются с IDE?

Например, сгенерированный проект для IntelliJ IDEA не может быть скомпилирован с использованием внутренних инструментов IDE и может 'не быть отлаженным (!)

Единственное, что я могу сделать, это расширить тестовые случаи , запустить их и упаковать окончательный файл . Это нормально?Я не очень привык к системам построения Java, но я думал, что они должны легко интегрироваться с IDE.

Как насчет создания тех же вещей с Ant / Maven?


Я, наверное, что-то упускаю, и если у кого-то есть опыт, пожалуйста, помогите мне:)

Спасибо.

Ответы [ 3 ]

3 голосов
/ 09 августа 2011

Насколько мне известно, поддержка Gralli IntelliJ почти завершена.Я успешно использовал его для генерации конфигурации проекта IntelliJ для довольно сложного проекта.У меня не было возможности использовать его много, так как я просто смотрю на переход с Gradle на Maven, но я не заметил никаких проблем, которые вы, похоже, описываете.Может быть, сборка, которую вы используете, использует более старую версию Gradle, которая еще не имела хорошей поддержки IDE?Можете ли вы привести конкретные примеры того, что не работает так, как вы ожидаете?

Редактировать: Специально для вашей проблемы я сделал это, и он работал с Gradle 1.0-milestone-4, IntelliJ 10.5 и JDK 1.6.0_26 в Windows 7:

git svn clone -r HEAD http://spock.googlecode.com/svn/trunk spock
cd spock
gradle idea

Затем в IntelliJ Файл -> Открыть проект ... перейдите и выберите ... / spock / spock.iprкак проект открыть.Сначала я запустил полную сборку проекта (Build -> Make Project) и столкнулся с проблемой с помощью spock.util.concurrent.BlockingVariables.Я должен был сказать IntelliJ не создавать заглушку для этого класса.Мой Groovy не очень силен, поэтому я не могу сказать вам, почему это решило проблему или каковы последствия этого.После этого я смог успешно запустить spock-spring / src / test / groovy / org / spockframework / spring / InjectionExamples.groovy.Затем я установил точку останова в строке 38 этого файла (service instanceof IService1) и смог отладить ее и разбить в этой строке.

Стоит отметить, что сборка Gradle не включает всемодули в этом проекте.По умолчанию сборка Maven включает в себя десять модулей, а сборка Gradle - только шесть.Сборка Gradle не включает в себя spock-maven, spock-example, spock-grails-support или spock-grails.Если бы мне пришлось угадывать, они, вероятно, переходят в Gradle поэтапно, и они еще не совсем там.

0 голосов
/ 09 августа 2011

Я настоятельно рекомендую вам посмотреть Maven. Maven не привязан к какой-либо конкретной IDE, хотя я могу представить, что его плагин можно найти для вашей IDE, у него есть поддержка плагинов для Eclipse.

Maven - одна из многообещающих сборок, и она делает больше, чем просто на самом деле. Это ключевой фактор поддержки систем непрерывной интеграции, то есть hudson + maven + континуум + ...

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

В нем принята "стандартная" практика упаковки, и она довольно вменяема и проста.

В целом, я видел больше проектов, начатых недавно с Maven, и сам проект является частью Apache и довольно активен.

Maven нельзя сравнивать с ant, как в Maven vs Ant, Maven - это больше, чем скрипт сборки, чем Ant. С помощью подключаемых модулей Maven можно реализовать множество вещей (например, подключаемый модуль Maven Cargo, упрощающий развертывание на серверах приложений).

0 голосов
/ 09 августа 2011

Мне не очень понятно, почему вы пытаетесь использовать Gradle, есть ли какая-то функциональность, которая вам нужна?Какая особенность вы находите убедительной?У меня нет опыта работы с ним, но если вы просто пытаетесь создать проект Java, я буду ручаться за Ant, используя Eclipse IDE.Ant была первой программой сборки, которую я попробовал, и мне больше ничего не нужно.Насколько я понимаю, Maven также довольно хорош и очень хорошо интегрируется с Eclipse.

...