我有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服务器来说非常有用,但是当我尝试在本地测试时,我无法获得更新的依赖项来测试我的代码。
我试过了:
使用本地构建的项目更新从项目下载项目A的gradle缓存。位于C:/users/username/.gradle/caches/path-to-jar
。
删除了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文件夹中
在IntelliJ中使用gradle离线模式并重复#1
在我的电脑上完全脱机并重复#1
在上面的所有4次尝试中,我仍然无法解决项目B中为项目B声明的依赖项。
我的目标是能够更新编译,testCompile,运行时等。依赖于我的projectA.gradle文件,然后沿着我的管道运行我的项目,以确保此更新按照我的意图影响项目中的依赖项。
答案 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中的更改。