Могу ли я автоматически обновить свой проект Intellij, чтобы использовать последний снимок с помощью gradle?

Есть ли способ заставить IntelliJ автоматически обновляться до новейшего снимка зависимости с помощью gradle?

В настоящее время у меня есть два проекта: A и B. A — это библиотека, которую использует B. Я разрабатываю их обоих с нуля одновременно.

У меня есть сборка Jenkins, которая проверяет код из ветки разработки, запускает скрипт сборки gradle, а затем публикует артефакт в моем репозитории артефактов моментальных снимков.

Мой build.gradle настроен на использование Integration.latest из моего репозитория моментальных снимков, но IntelliJ не будет автоматически вносить изменения. Мне нужно зайти в jetgradle, нажать «Обновить», а затем импортировать новый снимок, а затем удалить предыдущий снимок.

Есть ли более простой способ?


person jgrowl    schedule 10.10.2012    source источник
comment
Не могли бы вы дать больше информации? Используете ли вы плагин gradle idea (иначе это, вероятно, будет вашим ответом). Что вы подразумеваете под jetgradle, нажмите «обновить»   -  person mathiasbn    schedule 10.10.2012
comment
Я использую плагин gradle idea. Есть боковая панель с надписью JetGradle, кнопка обновления вверху слева: jetbrains. com/idea/webhelp/resolving-dependencies.html Когда я нажимаю «Обновить», моя зависимость моментального снимка отображается зеленым цветом, и мне нужно щелкнуть правой кнопкой мыши и щелкнуть «Импорт», чтобы фактически извлечь библиотеку. Я создаю моментальный снимок мою библиотеку, увеличивая номер версии моментального снимка. Затем я нажимаю «Обновить», и моя новая версия отображается зеленым цветом, готовая к загрузке, но старая остается.   -  person jgrowl    schedule 11.10.2012
comment
Глядя на документы Intellij, кажется, что в настоящее время вы не можете этого сделать (хотя я могу ошибаться). у меня была такая же проблема, прежде чем я вместо этого переключился на плагин gradle idea (создание файлов настроек идеи). возможно, Intellij 12 сделает его более гибким.   -  person rodion    schedule 11.10.2012
comment
Я почти уверен, что вам все еще придется вручную регенерировать файлы проекта идеи в 12   -  person noamt    schedule 11.10.2012


Ответы (2)


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

В итоге я создал основной проект с собственным build.gradle. Затем я добавил подмодули git для своих библиотечных проектов.

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

Однако мои сборки Jenkins по-прежнему извлекают артефакты с моего артефактного сервера.

person jgrowl    schedule 21.10.2012

Если вы обновляете локальный код в проекте A и хотите, чтобы он отражался в проекте B с зависимостью A, вам следует запустить gradle install в проекте A. (установка доступна на панели задач IntelliJ). Установка обновит банку в локальном репозитории maven и это обновит IntelliJ последним кодом.

person Jurriaan Mous    schedule 08.04.2014