在相互依赖的项目的多项目构建中只编译 java 类
Only compile java classes in multi-project builds for inter-dependent projects
我的问题涉及项目间依赖关系和生成的 JAR
项目结构类似于此
root
-- :a
-- :b
-- :c
-- :d
依赖如下(:d
没有依赖)
a -> b -> c -> d
编译 :d
包含 :d
中的所有 *.class
文件。编译 :c
包含为 :d
和 :c
生成的源代码。到目前为止,一切都很好。
但是,当我编译 root
时,它会为 :d
生成一个 JAR,然后为 :c
编译并生成一个 jar,其中包括 CLASS
个文件 :d
。这一直到顶部。
root
项目仍将仅包含一次已编译的子项目,但 build\libs
文件夹也将包含所有中间 JAR。
我 运行 使用 --profile
构建并注意到 JAR 的打包在整个构建过程中占用了相当多的时间。
依赖项目包含在它们的相关 build.gradle
文件中,如下所示(:b
和 :c
的示例)
项目 C
dependencies {
compile project(':d')
}
项目 B
dependencies {
compile project(':c')
}
实际上整个项目由大约100个子项目组成,并且有大量相互依赖的项目。
有什么方法可以编译 CLASS
文件 而无需 生成 JAR?
如有任何帮助,我们将不胜感激。
引用的可能重复的问题与多项目构建或项目间依赖关系无关。
最后只好手动将所有模块添加到类路径中,然后编译整个模块。编译时间过长。
我们正在考虑很好地解耦所有内容,让每个模块成为一个可以从内部工件导入的库。
我的问题涉及项目间依赖关系和生成的 JAR
项目结构类似于此
root
-- :a
-- :b
-- :c
-- :d
依赖如下(:d
没有依赖)
a -> b -> c -> d
编译 :d
包含 :d
中的所有 *.class
文件。编译 :c
包含为 :d
和 :c
生成的源代码。到目前为止,一切都很好。
但是,当我编译 root
时,它会为 :d
生成一个 JAR,然后为 :c
编译并生成一个 jar,其中包括 CLASS
个文件 :d
。这一直到顶部。
root
项目仍将仅包含一次已编译的子项目,但 build\libs
文件夹也将包含所有中间 JAR。
我 运行 使用 --profile
构建并注意到 JAR 的打包在整个构建过程中占用了相当多的时间。
依赖项目包含在它们的相关 build.gradle
文件中,如下所示(:b
和 :c
的示例)
项目 C
dependencies {
compile project(':d')
}
项目 B
dependencies {
compile project(':c')
}
实际上整个项目由大约100个子项目组成,并且有大量相互依赖的项目。
有什么方法可以编译 CLASS
文件 而无需 生成 JAR?
如有任何帮助,我们将不胜感激。
引用的可能重复的问题与多项目构建或项目间依赖关系无关。
最后只好手动将所有模块添加到类路径中,然后编译整个模块。编译时间过长。
我们正在考虑很好地解耦所有内容,让每个模块成为一个可以从内部工件导入的库。