1

我有3個gradle項目projectA,projectB,projectC。所有這些構建一個名爲projectX-0.0.0.jar的jar文件。在我的jenkins服務器上,所有這些項目都將這些罐子部署到我的公司artifactory。Gradle本地依賴測試

在了projectA,我有我的整個整個項目中使用多個編譯依賴。然後在項目B中,我包含了項目A:compile group: 'com.company.projectName', name: 'projectA, version '0.0.0'因此,我可以使用這些依賴關係(即slf4j),我對projectC執行相同的操作以包含projectB依賴項,其結果包括projectA的依賴項。

這對我們詹金斯服務器上部署的偉大工程,努力本地測試,我不能得到的依賴關係來更新我的測試代碼時後,我已經推了代碼放到服務器上,但是。

我曾嘗試:

  1. 更新gradle這個緩存下載一個項目從artifactory的局部建項目的JAR。位於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的jar lib文件夾內的項目B

  3. 使用的IntelliJ gradle這個離線模式和重複#1

  4. 在我的電腦離線完全去和重複#1

以上所有4次嘗試我仍然無法解決在項目A中聲明的項目B的依賴項。

我的目標是能夠更新編譯,testCompile,運行時間等。依賴於我的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

您需要更新gradle緩存中的.jar和.pom文件。 .jar文件包含源代碼,而pom包含您在前一個項目中引入的依賴關係。使用gradlew clean build install您可以創建jar和pom。

所以要解決你的問題,在項目一做gradle build clean install。從生成的構建文件中獲取jar和pom,並在緩存中替換project-a.jar和project-a.pom。然後對project-b執行相同的操作,您將在gradle刷新後看到project-c中的更改。