Gradle:用jar依赖构建一场肥沃的战争

Gradle:用jar依赖构建一场肥沃的战争,gradle,groovy,ant,ivy,Gradle,Groovy,Ant,Ivy,我正试图从Ant+Ivy迁移到Gradle,但无法正确地包含可传递依赖项 例如,我有以下常春藤依赖关系: 正如Ivy报告所示,这个工件依赖于SpringTX,它由Ivy检索并作为一个jar放置到WEB-INF/lib。但是Gradle在默认情况下不这样做,并且该代码也不起作用(它只是没有将任何spring-tx相关的.class文件放入其中): 有人知道我如何将可传递依赖项作为JAR包含并将它们放入WEB-INF\lib中吗?Gradlewar插件可用于此(请参阅) 下面是一个非常简单的bui

我正试图从Ant+Ivy迁移到Gradle,但无法正确地包含可传递依赖项

例如,我有以下常春藤依赖关系:

正如Ivy报告所示,这个工件依赖于
SpringTX
,它由Ivy检索并作为一个jar放置到
WEB-INF/lib
。但是Gradle在默认情况下不这样做,并且该代码也不起作用(它只是没有将任何
spring-tx
相关的
.class
文件放入其中):


有人知道我如何将可传递依赖项作为JAR包含并将它们放入
WEB-INF\lib
中吗?

Gradle
war
插件可用于此(请参阅)

下面是一个非常简单的
build.gradle
脚本示例,该脚本将在
/WEB-INF/lib
下创建一个
war
,其中包含所有需要的依赖项(和传递依赖项)

plugins{
    id "war"
}

repositories {
    mavenCentral()
}

dependencies{    
    implementation group: 'org.springframework', name: 'spring-jdbc', version: '4.2.0.RELEASE'

}

使用
/gradlew build
生成的
war
将在/WEB-INF/lib文件夹中包含所有
SpringJDBC
库及其依赖项(
SpringBeans
SpringCore
SpringTX
)。

是否使用Gradle
war
插件?是,我确实使用了这个插件
war
插件,我认为它正是您所需要的。请看下面我的回答:请尝试这个非常简单的项目设置,并检查是否得到预期的结果。我使用这个插件,它不会将任何可传递的依赖项放入
WEB-INF/lib
,只有声明的依赖项。您是否尝试上面简单的9行脚本?我认为没有理由不获取可传递依赖项。。顺便问一下,你用的是哪一个Gradle版本?
plugins{
    id "war"
}

repositories {
    mavenCentral()
}

dependencies{    
    implementation group: 'org.springframework', name: 'spring-jdbc', version: '4.2.0.RELEASE'

}