我的项目中有两个模块,模块 A 取决于模块 B 。 为了使用 Gradle 构建此文件,我在A的 build.gradle 文件中使用了一个简单的代码:
compile project(":B")
我的问题是资源目录的冲突。 我想做的是排除某些B的模块“资源”目录。
我尝试过的事情:
compile (project(":B")) {
exclude group : 'src.main', module : 'resources'
}
我也尝试过:
compile(project(":B")) {
exclude module: 'src'
exclude module: 'main'
exclude module: 'src/main'
exclude module: 'src.main'
}
通过排除模块B的根,我期望整个项目的构建失败,但是什么都没有发生。
P.S。每次运行构建时,我都会清洗已编译的jar,因此不会将其缓存。
答案 0 :(得分:1)
Gradle模块无法像这样工作。 Java模块是编译后的类加上资源。您只能使用尝试的exclude方法排除依赖项(即整个模块或jar)。您不能排除依赖项的特定部分(例如目录)
我认为排除事物是一种反模式。我建议将事物分解成较小的部分并将它们结合在一起(例如,“包含”而不是“排除”)
因此,我建议您创建一个“:common”项目,其中“ A”和“ B”都具有依赖性。所有常见的东西都通用,而任何特定的东西都用A或B