我尝试从gradle构建中排除jar但是如何为我的项目部分执行此操作我不清楚。下面是我必须排除geronimo-javamail_1.4_spec / 1.7.1 jar的依赖项,因为这会产生错误我尝试发邮件。请给出指导来解决这个问题。
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-batch")
//compile("org.springframework.boot:spring-boot-devtools")
compile('org.apache.commons':'commons-lang3':'3.5'){
exclude module: 'geronimo'
}
compile group: 'org.apache.cxf', name: 'cxf-spring-boot-starter-jaxws', version: '3.1.10'
compile group: 'org.apache.cxf', name: 'cxf-rt-ws-security', version: '3.1.10'
testCompile('org.springframework.boot:spring-boot-starter-test')
}
更新:排除无效
答案 0 :(得分:8)
首先,这句话存在一个问题:
compile('org.apache.commons':'commons-lang3':'3.5')
如果要对依赖项使用冒号表示法,则必须将其全部放在一个字符串中,如下所示:
compile('org.apache.commons:commons-lang3:3.5')
此外,您应该使用完整的模块名称:module: 'geronimo-javamail_1.4_spec'
。
最后,geronimo-javamail_1.4_spec
是此设置中多个依赖项的传递依赖项,因此您应该在必要时将其逐个排除,或者将其完全排除在外:
configurations {
all*.exclude module: 'geronimo-javamail_1.4_spec'
}
这应该添加到build.gradle
文件中与dependencies{}
部分相同的级别,而不是在其中,因此最终代码如下所示:
configurations {
all*.exclude module: 'geronimo-javamail_1.4_spec'
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-batch")
//compile("org.springframework.boot:spring-boot-devtools")
compile('org.apache.commons:commons-lang3:3.5')
compile group: 'org.apache.cxf', name: 'cxf-spring-boot-starter-jaxws', version: '3.1.10'
compile group: 'org.apache.cxf', name: 'cxf-rt-ws-security', version: '3.1.10'
testCompile('org.springframework.boot:spring-boot-starter-test')
}