我有2个Java项目和1个服务器,所有这三个服务器都有build.gradle文件,用于定义和配置项目中需要的依赖项。 Liberty服务器build.gradle的代码段如下:
configuration{
project1
project2
oracle
extrasecuritystuff
}
dependencies{
project1: "fskfksd"
project2: "sdfd"
extrasecuritystuff 1."fsfd"
2."ewrwer"
}
doTask{....
我的问题是我如何排除2.“ ewrwer”中存在的传递依赖。常规的groovy / gradle语法是什么? 基于gradle文档,一旦我触发了Jenkins构建,我就尝试了类似的方法,但没有解决,它仍然在传递依赖库中。
configurations {
project1
project2
extrasecuritystuff {
exclude group: 'javax.jms', module: 'jms'
exclude group: 'com.sun.jdmk', module: 'jmxtools'
}
}
dependencies {
project1 'org.javax.etc'
project2 'org.blah.blah'
extrasecuritystuff 'log4j:log4j:1.2.15'
}
答案 0 :(得分:0)
我在这里假设您正在使用某些插件(例如“应用程序”插件)来生成项目的.zip文件,并且您的目标是从.zip文件中排除传递依赖项。原因可能是可传递依赖项具有不合需要的许可证或太大,并且您的代码从不实际调用需要可传递依赖项的函数。 (对此绝对要100%保证,否则您的应用程序将崩溃。)或者,目标系统已经安装了该依赖项。 (就像。)
您的示例代码中有一些语法问题,但是我已经根据我的理解解释了这个问题。在该示例中,我的依赖项ewrwer
吸引了我不想要的lib-foo
。
configuration{
project1
project2
extrasecuritystuff
}
dependencies{
project1 ( [...] )
project2 ( [...] )
extrasecuritystuff ('org.blah:fsfd:1.0.1')
extrasecuritystuff ('org.bloop:ewrwer:2.12') {
exclude group: 'org.bleep', module: 'lib-foo'
}
}
有关管理传递依赖项的更多信息,请参阅the official Gradle docs.