我有一个gradle多项目。 在projectA中,我有一个包含一些类的packageA(以及一些其他包,仅在projectA中使用)。
在另一个projectB中,我只想使用来自projectA的packageA。
我在projectB中使用以下配置:
dependencies {
compile project(':ProjectA') // I understand, this is to much
}
在为projectB生成的JAR中,我现在拥有来自projectA的所有类,但我不知道 如何排除不需要的类(或仅包含带有此类的packageA)。
有人可以帮助我,如何配置。 感谢
Uwe /德国
答案 0 :(得分:2)
你可以像@Opal那样说并将它拆分成单独的项目用于依赖关系,或者如果你只想保留2个项目而只依赖于某些类,那么将projectB的依赖项放到生成的projectA的工件像这样:
在projectA中创建工件:
configurations {
myCustom.extendsFrom runtime
}
task customJar(type: Jar) {
classifier "custom"
from sourceSets.main.output
// now the packages you want to include in the artifact
include 'com/your/domain/package1/*'
include 'com/your/other/stuff2/*'
}
artifacts {
myCustom customJar
}
然后在projectB中,您可以依赖生成的工件:
dependencies {
compile project(path: ':projectA', configuration: 'myCustom')
}
这适用于任何类型的生成类,因此您可以使用“extendsFrom testRuntime”和“from sourceSets.test.output”,并包含测试类的路径,如果它是您想要依赖的测试输出关系而不是main类。
答案 1 :(得分:0)
这种类过滤你试图做的并不是一个好主意。而是将需要在A
和B
中使用的类/包分离到项目C
(或common
),并将其作为依赖项添加到两个项目中。