1

У меня есть 3 проекта градиента, projectA, projectB, projectC. Все они создают файл jar с именем projectX-0.0.0.jar. На моем сервере jenkins все эти проекты используют эти банки для моих компаний искусственно.Локальное тестирование на местность

В проекте A у меня есть несколько зависимостей для компиляции, используемых во всем моем проекте. Затем в проекте B я включаю проект A, указав: compile group: 'com.company.projectName', name: 'projectA, version '0.0.0' Итак, я могу использовать эти зависимости (т. Е. Slf4j). Я делаю то же самое для projectC, чтобы включать зависимости ProjectB, которые в результате включают зависимости ProjectA.

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

Я попытался:

  1. Обновления Gradle кэша, который загружает проект А из Artifactory с локально построенным проектом баночки. Расположен в C:/users/username/.gradle/caches/path-to-jar.

  2. Удалены compile group: 'com.company.projectName', name: 'projectA, version '0.0.0' и заменил его compile files('libs/projectA-0.0.0.jar'), поместив банку Projecta в пределах Lib папки в projectB

  3. Использование режима Gradle форума в IntelliJ и повторив # 1

  4. Going форума полностью на моем компьютере и повторяющийся № 1

Со всеми 4 попытками выше я до сих пор не смог разрешить зависимости, заявленные в проекте A для проекта B.

Моя цель - обновить компиляцию, testCompile, runtime и т. Д. в моем файле projectA.gradle, а затем запустите мои проекты по моему конвейеру, чтобы убедиться, что это обновление влияет на зависимости в моем проекте, как я и предполагал.

+1

Похоже, вы описываете прецедент для [составных сборок] (https://docs.gradle.org/current/userguide/composite_builds.html). – mkobit

+1

У меня уже есть рабочий проект, используя эту настройку. В моем описании спрашивают, как тестировать локально. – DevelopingDeveloper

+1

См. Https://docs.gradle.org/current/userguide/dependency_management.html#sub:dynamic_versions_and_changing_modules, https://docs.gradle.org/current/userguide/dependency_management.html#sec:controlling_caching, https: // discuss.gradle.org/t/configuring-gradle-project-to-always-refresh-dependencies-in-the-gradle-cache/6024/3 –

ответ

0

Вам необходимо обновить файл .jar и .pom в кеше градиента. Файл .jar содержит исходный код, в то время как pom содержит зависимости, которые вы ввели в предыдущем проекте. Используя gradlew clean build install, вы можете создать банку и pom.

Чтобы решить вашу проблему, выполните gradle build clean install по проекту-a. Возьмите jar и pom из созданного файла сборки и замените проект-a.jar и project-a.pom в кеше. Затем сделайте то же самое для project-b, и вы увидите изменения в проекте-c после обновления градиента.