我有一个产生战争的网络项目。战争添加了一个 jar(我在外部 repo 上发布的另一个项目)作为编译依赖项。这个 jar 有它自己的编译依赖,它列在 jar 的 pom 文件以及项目的构建脚本(这是一个 Gradle 项目)中。我想将 jar 以及它自己的所有依赖项添加到我的战争的 WEB-INF/lib 文件夹中。但是,当我使用 Gradle 构建 web 项目时,只添加了直接依赖项,而不是传递依赖项。
这是我的网络项目的构建脚本:
apply plugin: 'war'
repositories {
maven {url "http://repo-url"}
}
configurations.all {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
}
}
dependencies {
compile('com.company.group:artifact-name:1.0.0-SNAPSHOT') {
changing = true
transitive = true
}
}
com.company.group:artifact-name:1.0.0-SNAPSHOT确实有自己的 POM,其中列出了以下依赖项:
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>xsoup</artifactId>
<version>0.2.0</version>
<scope>compile</scope>
</dependency>
另外,我将 cacheChangingModulesFor 设置为 0 秒,这样每次都有效地使用最新版本的 SNAPSHOT jar。
我遇到的问题是 'us.codecraft:xsoup:0.2.0' 工件没有包含在战争中,即使它是战争的传递依赖。
有什么想法吗?如果有任何不清楚的地方,请询问更多细节。