我最近开始使用Gradle并替换现有的基于Maven的项目.过去我使用Maven处理多模块构建时遇到了很多问题.Gradle在处理多模块构建时已经呼吸新鲜空气,但它还不完美.
我的项目有以下文件夹布局:
-- Projects
---- EnterpriseApp1
------ EarProject
-------- build.gradle
------ EjbProject
-------- build.gradle
------ WarProject
-------- build.gradle
------ properties.gradle
------ build.gradle
---- CommonLib
------ build.gradle
---- ClientApplication
------ build.gradle
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是"EnterpriseApp1"和"ClientApplication"都依赖于CommonLib项目.我不知道如何配置我的"EnterpriseApp1"构建文件以使用CommonLib项目作为"EjbProject"的依赖项.我已经非常接近让这个工作,但还没有完成工作.我通过复制"EnterpriseApp1"中的CommonLib文件夹取得了成功,但这不是一个长期的解决方案.
这是我在"EnterpriseApp1"中的当前properties.gradle文件:
include "EarProject", "EjbProject", "WarProject"
includeFlat "CommonLib"
Run Code Online (Sandbox Code Playgroud)
根据Gradle文档,"settings.gradle"文件中的"includeFlat"命令将包含与"settings.gradle"文件所在文件夹相同的栏中的项目(所需行为).
EnterpriseApp1/build.gradle文件:
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.6
group = 'org.example'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
...
}
dependencies {
}
}
Run Code Online (Sandbox Code Playgroud)
EnterpriseApp1/EjbProject /的build.gradle:
apply plugin: 'java'
sourceCompatibility = 1.6
repositories {
mavenCentral()
...
}
dependencies {
compile project(':CommonLib') …Run Code Online (Sandbox Code Playgroud)