我注意到在我们的构建配置中,插件中有一个transitive = false,这意味着什么?做excludes时有什么区别呢?
excludes 'code-coverage', 'maven-publisher', 'codenarc'
发布于 2016-03-09 09:00:37
您可以在早期文档中找到解释
禁用传递依赖解决方案 默认情况下,Grails不仅会得到您声明的JAR和插件,而且还会得到它们的传递依赖项。这通常是你想要的,但在有些情况下,你想要的依赖没有它的所有包袱。在这种情况下,您可以逐个案例禁用传递依赖解析: runtime('com.mysql:mysql-connector-java:5.1.16','net.sf.ehcache:ehcache:1.6.1') { transitive = false } //或运行时组:‘com.mysql’,名称:‘mysql-连接器-java’,版本:‘5.1.16’,传递:false:false 排除特定的传递依赖项 更常见的情况是,您希望传递依赖关系,但其中一些依赖关系会导致与您自己的依赖关系出现问题,或者是不必要的。例如,许多Apache项目都将“公用日志”作为传递依赖项,但它不应该包含在Grails项目中(我们使用SLF4J)。这就是排除选项出现的原因: runtime('com.mysql:mysql-connector-java:5.1.16',‘net.sf.ehcache:ehcache:1.6.1’{不包括“xml”、“commons”} //或运行时(组:‘com.mysql’,名称:‘mysql-连接器-java’,版本:‘5.1.16’){排除(组:‘xml’,名称:‘xml’,组:“org.apache.httpcomponents”,名称:“commons”) 如您所见,您可以通过它们的工件ID (也称为模块名称)排除依赖项,也可以排除组ID和工件ID的任何组合(如果使用Map符号)。您也可能遇到排除,但只能接受单个字符串或Map: runtime('com.mysql:mysql-connector-java:5.1.16','net.sf.ehcache:ehcache:1.6.1') {排除“xml”}
https://stackoverflow.com/questions/35881718
复制相似问题