2

Я использую STS/Eclipse для работы над несколькими проектами Gradle, которые я загрузил в свое рабочее пространство.Eclipse: Как сделать зависимости для обновления Gradle только для выбранного проекта?

Некоторые проекты имеют зависимости от других проектов, поэтому мне часто приходится выполнять сборки Gradle в jar-файлы, а затем Gradle -> Refresh Dependencies и создавать дерево зависимостей. Это прекрасно работает, хотя я заметил, что иногда Gradle будет пытаться обновить зависимости для всех проектов в моей рабочей области (даже проекты, которые полностью не связаны).

Не только надоедает и требует много времени, чтобы ждать, пока град обновит все проекты, но также затрудняет отладки проблем с конфликтующими зависимостями в кеше: Иногда я хочу отключить определенную зависимость от проекта A , но он по-прежнему загружается в кеш, потому что не связанный с ним проект B также имеет эту зависимость.

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

Для справки, я использую версию STS 3.6.3.RELEASE на Eclipse Kepler SR2 (4.3.2) с использованием плагина Gradle IDE 3.6.3.201411271013-RELEASE org.springsource.ide.eclipse.gradle.feature.feature. группа

+0

Я только что создало две отдельные, не связанный Gradle проекта и когда я выбираю один из этих проектов и правой кнопки мыши, а затем выберите «Обновить зависимости» из контекста в меню обновляется только выбранный проект. – Kris

ответ

1

Кажется, это проблема с плагином Gradle на STS в конце концов. Как я ее решил:

  • Открытое окно -> Предпочтения; выбранное меню «Грейдл»

  • Отключенные «банды-репапы» в «maven projects» и «Remap Jars to Gradle Проекты».

  • Применяемые изменения.

Не уверен, что это также связано/необходимо, но я также:

  • меню Открытые Внешние инструменты Конфигурации (Щелкните правой кнопкой мыши на проекте, Запуск -> Внешние Конфигурации Инструменты).

  • Перешел на вкладку «Обновить» и изменил параметр «Обновить ресурсы после завершения» с «Все рабочее пространство» на «Проект, содержащий выбранный ресурс» и применил изменения.

  • Мне пришлось вручную изменить этот параметр для каждого проекта в моем рабочем пространстве.

Теперь я могу выполнять зависящие от града строения и обновления только для проектов, которые я выбираю, а не для всех проектов на моем рабочем пространстве. Хотя если проект, который я выбираю, включает зависимые файлы jar с отсутствующими зависимостями, они также будут загружаться в кеш (что имеет смысл).

Найден полезная информация об этой проблеме здесь:

https://github.com/spring-projects/eclipse-integration-gradle/issues/57

+0

А я вижу, да, включение «переназначения» зависимостей градиентов означает, что для IDE нужны модели для всех проектов в рабочей области. Поэтому объясняется, почему обновление одного проекта создает модели для всех. – Kris

0

в этом случае, вы можете перейти в папку с командной строкой и EXEC команды ниже

gradle build 

Если вы хотите заставить Gradle, чтобы загрузить все библиотеки снова, вы можете использовать --refresh-зависимости параметр

gradle build --refresh-dependencies 

Это копия руководства по градации.

Опция --refresh-зависимостей говорит Gradle игнорировать все кэшированные записей для разрешенных модулей и артефактов. Свежей решимостью будет , выполненная против всех сконфигурированных репозиториев, с динамическими версиями пересчитаны, обновлены модули и артефакты.

+0

Спасибо за ваш ответ. Однако создание градиента на STS (даже без зависимостей --refresh) по-прежнему загружало зависимости для всех проектов в моей рабочей области. Я предполагаю, что вы имеете в виду выполнение построения градиента вне затмения, но кажется, что более надоедливо переключиться в другое окно каждый раз, когда я хочу что-то построить. Кроме того, STS также обновлял все зависимости от запуска, поэтому в любом случае мне нужно было решение в пределах затмения. Теперь я опубликовал решение, которое сработало для меня. – Pdrit

 Смежные вопросы

  • Нет связанных вопросов^_^