Gradle Local Dependency Testing

时间:2017-02-03 20:40:19

标签: maven intellij-idea gradle dependencies dependency-management

我有3个gradle项目,projectA,projectB,projectC。所有这些都构建了一个名为projectX-0.0.0.jar的jar文件。在我的jenkins服务器上,所有这些项目都将这些罐子部署到我的公司神器中。

在projectA中,我在整个项目中使用了多个编译依赖项。然后在项目B中,我通过声明:compile group: 'com.company.projectName', name: 'projectA, version '0.0.0'来包含项目A所以我可以使用这些依赖项(即slf4j)我对projectC执行相同操作以包含projectB依赖项,其结果包括projectA的依赖项。< / p>

在我将代码推送到服务器之后,这对于我们的jenkins服务器来说非常有用,但是当我尝试在本地测试时,我无法获得更新的依赖项来测试我的代码。

我试过了:

  1. 使用本地构建的项目更新从项目下载项目A的gradle缓存。位于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&#39; s jar放在projectB的lib文件夹中

  3. 在IntelliJ中使用gradle离线模式并重复#1

  4. 在我的电脑上完全脱机并重复#1

  5. 在上面的所有4次尝试中,我仍然无法解决项目B中为项目B声明的依赖项。

    我的目标是能够更新编译,testCompile,运行时等。依赖于我的projectA.gradle文件,然后沿着我的管道运行我的项目,以确保此更新按照我的意图影响项目中的依赖项。

1 个答案:

答案 0 :(得分: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中的更改。