相关疑难解决方法(0)

是否可以设置超过2级的gradle项目?

我们已经使用gradle大约一年了,并且已经取得了一些成功.许多功能仍然有点不透明,但我们正在实现这一目标.我不确定我是否正确解决问题,所以我会继续提问:

我在gradle中看到的所有示例都有一个根项目和一个子项目.出于多种原因,我们想巩固我们的git项目.所有这些都是gradle项目,其中一些项目有gradle子项目.我们最终想要的是一个多层次的gradle结构.我们不希望改变所有这些项目的gradle设置,而是希望拥有一个管理所有项目和相应子项目的顶级gradle.我的第一次尝试表明,我无法拥有一个控制build.gradle来编排所有项目和子项目.难道我做错了什么?我是否遵循并固有地打破了范式?

这是我想要做的示例结构:

Top Project
  build.gradle
  Project
    build.gradle
    Sub Project
      build.gradle
      src
    Sub Project
      ...
  Project
    ...
Run Code Online (Sandbox Code Playgroud)

谢谢,我希望我没有错过文档中的一些明显的解释.

gradle

29
推荐指数
2
解决办法
8485
查看次数

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
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)

java gradle

20
推荐指数
1
解决办法
3万
查看次数

标签 统计

gradle ×2

java ×1