gradle多模块 java_java – Gradle多模块项目设置

我最近开始使用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

我遇到的问题是“EnterpriseApp1”和“ClientApplication”都取决于CommonLib项目。我不知道如何配置我的“EnterpriseApp1”构建文件,以使用CommonLib项目作为“EjbProject”的依赖。我已经非常接近让这个工作,但还不够工作。通过复制“EnterpriseApp1”中的CommonLib文件夹已经取得了成功,但这不是长期的解决方案。

这是我目前在“EnterpriseApp1”中的properties.gradle文件:

include "EarProject", "EjbProject", "WarProject"

includeFlat "CommonLib"

根据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 {

}

}

EnterpriseApp1 / EjbProject /的build.gradle:

apply plugin: 'java'

sourceCompatibility = 1.6

repositories {

mavenCentral()

...

}

dependencies {

compile project(':CommonLib')

compile group: 'org.restlet.jee', name: 'org.restlet', version: '2.0.11'

compile group: 'ma.glasnost.orika', name: 'orika-core', version: '1.0'

...

compile group: 'javax.jmdns', name: 'jmdns', version: '3.4.1'

}

当我从EnterpriseApp1文件夹执行“gradle clean build”时,所有依赖项都按预期下载,项目开始编译(包括CommonLib项目),但由于缺少CommonLib jar参考,EjbProject项目在构建过程中失败。 。 Gradle不够聪明(或者我完全无能为力)配置我的EjbProject来使用从CommonLib项目构建阶段生成的Jar。

对于漫长而复杂的设置,我深表歉意。我一直在努力想出这个时间了一段时间,但几乎没有想法。我真的很感谢任何帮助社区。

谢谢!


版权声明:本文为weixin_27013291原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。