Gradle 从另一个项目中选择一个包
我有一个gradle多项目。 在projectA中,我有一个带有一些类的包(和一些其他包,仅在projectA中使用) 在另一个projectB中,我只想使用projectA中的packageA 我在projectB中使用以下配置:Gradle 从另一个项目中选择一个包,gradle,Gradle,我有一个gradle多项目。 在projectA中,我有一个带有一些类的包(和一些其他包,仅在projectA中使用) 在另一个projectB中,我只想使用projectA中的packageA 我在projectB中使用以下配置: dependencies { compile project(':ProjectA') // I understand, this is to much } 在为projectB生成的JAR中,我现在拥有projectA中的所有类,但我不知道
dependencies {
compile project(':ProjectA') // I understand, this is to much
}
在为projectB生成的JAR中,我现在拥有projectA中的所有类,但我不知道
如何排除不需要的类(或仅包括包含此类的packageA)
谁能帮我,如何配置。
谢谢
Uwe/德国您尝试进行的这种类过滤不是一个好主意。相反,将需要在
A
和B
中使用的类/包分开,以投影C
(或common
)并将其作为依赖项添加到两个项目中 您可以按照@Opal所说的操作,并将其拆分为独立的项目,以建立依赖关系,或者如果您确实希望只保留两个项目,并且只依赖其中一些类,则将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')
}
这适用于任何类型的生成类,因此您可以使用“ExtendFrom testRuntime”和“from SourceSet.test.output”,如果您希望依赖测试输出关系而不是主类,则可以包含测试类的路径。谢谢,这非常适合我。我以前见过类似的例子,但无法正确创建customJar任务。Thanks@ula.uvula很高兴我能帮忙,我花了一段时间才弄清楚它是如何工作的。如果你很高兴这对你有用,你能接受这个问题吗