gradle跟pom

当您来自Maven背景时,很可能已经习惯了父pom结构。

现在,在进行gradle时,情况有所不同。

想象一下有一个包含接口和各种其他实现的项目的场景。
这将是我们的项目结构。

multi-project-gradle
-- specification
-- core
-- implementation-a
-- implementation-b

规范项目包含接口,实现将基于这些接口。 核心项目将包含需要在实现之间共享的功能。

下一步是在multi-project-gradle中创建每个项目。

每个项目实际上是带有builde.gradle文件的目录。

plugins {id 'java'
}repositories {mavenCentral()
}dependencies {testCompile group: 'junit', name: 'junit', version: '4.12'
}

完成后,您需要在父项目和子项目之间进行链接。
为此,您可以创建multi-project-gradle / settings.gradle并包含其他项目。

rootProject.name = 'com.gkatzioura'
include 'specification'
include 'core'
include 'implementation-a'
include 'implementation- b'

现在,如果为每个子项目都设置了build.gradle文件,那么您刚刚意识到,随处都包含了junit依赖项和mavencentral存储库。

使用多项目构建的主要好处之一是消除重复。

为此,我们将创建multi-project-gradle / build.gradle文件,在其中添加junit依赖项和maven中央引用。

subprojects {apply plugin: 'java'repositories {mavenCentral()}dependencies {testCompile group: 'junit', name: 'junit', version: '4.12'}}

现在,我们可以将依赖项添加到每个项目,甚至可以指定子项目所需的依赖项。

例如核心项目使用规范项目

dependencies {compile project(':specification')
}

每个实施项目都使用核心项目

dependencies {compile project(':core')
}

您可以在github上找到该项目。

翻译自: https://www.javacodegeeks.com/2018/07/gradle-parent-pom-structure.html

gradle跟pom

gradle跟pom_Gradle多项目构建–父pom式结构相关推荐

  1. Gradle多项目构建–类似父pom的结构

    当您来自Maven背景时,很可能已经习惯了父pom结构. 现在,在进行gradle时,情况有所不同. 想象一下有一个包含接口和各种其他实现的项目的场景. 这将是我们的项目结构. multi-proje ...

  2. 如何使用Gradle外部脚本进行项目构建

    本文新建一个文件other.gradle, 内容如下: println "configuring $project" task hello {doLast{println 'hel ...

  3. Gradle 2.0 用户指南翻译——第五十六章. 多项目构建

    本文禁止w3cschool转载! 翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc . 本文翻译所在分支:https://github.com/m ...

  4. Gradle 1.12用户指南翻译——第五十六章. 多项目构建

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

  5. 项目构建错误:com.mabang:wms-api:0.0.1-SNAPSHOT 的不可解析父 POM

    报错信息: Project build error: Non-resolvable parent POM for com.mabang:wms-api:0.0.1-SNAPSHOT: Could no ...

  6. Java项目构建工具Gradle是否可以完全替代Maven?

    前言 在Java项目的开发中,需要引入自动化构建工具来帮助我们管理项目的外部依赖包.项目编译.打包等工作.Gradle和Maven是Java世界中两个重要的自动化构建工具,在项目中我们在两者之间如何选 ...

  7. Java技术:项目构建工具Maven最佳替代者gradle介绍

    Maven作为一款非常流行的项目构建工具.基本上是每个Java程序员必备的工具,当然Maven有一些地方不足之处: 1. Maven的配置文件是XML格式的,如果你的项目工程依赖的包很多,那么XML文 ...

  8. java ee maven_针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom...

    java ee maven 为什么呢 很多时候,我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题. 为了提供解决方案,我经常最终会尝试项目结构,测试我在不同应用程序服务 ...

  9. 针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom

    为什么呢 很多时候,我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题. 为了提供解决方案,我经常最终会尝试项目结构,测试我在不同应用程序服务器上的部署并细化我的配置. ...

最新文章

  1. CSS之布局(盒子的垂直布局)
  2. 平板电脑安装软件_题宝典软件升级了,微信公众号版不受影响,电脑版/手机APP/平板APP需要重新下载安装...
  3. html met详解转
  4. UNIX高手应该保持的习惯
  5. pyinstaller安装以及生成exe文件
  6. 二叉树最近公共祖先节点
  7. matlab 图片批量读取
  8. mysql解压版怎么退出_mysql-8.0.15-winx64 解压版安装教程及退出的三种方式
  9. 关于Mysql的错误:No query specified
  10. InfoPath2010表单-IE浏览器2个“微型内嵌工具”的使用和介绍
  11. python骗局-如何识破python小课骗局_怎样选择学校呢
  12. 若程序员们的“反996协议”实行,会发生什么
  13. 阿里云免费SSL证书到期了怎么办?(阿里云虚拟主机安装HTTPS)
  14. Java 订单管理系统
  15. 语音识别(ASR)论文优选:关注语音识别系统Fairness问题Towards Measuring Fairness in Speech Recognition
  16. 记录Nacos下载安装和使用
  17. 微信小程序的重点(重中之重)
  18. 如何找国外作者的matlab,如何与外国学者用电子邮件联系(索要论文或者代码)...
  19. 外骨骼机器人(一):Lokomat核心技术简介
  20. 跨平台工具详解:Netbiscuits (Kony solutions的竞争对手)

热门文章

  1. 【网络流】最大流问题(EK算法带模板,Dinic算法带模板及弧优化,ISAP算法带模板及弧优化)上下界网络流
  2. YbtOJ#20078-[NOIP2020模拟赛B组Day7]路径之和【分治,Flody】
  3. P4331-[BalticOI2004]Sequence数字序列【左偏树】
  4. P2607-[ZJOI2008]骑士【基环树,树形dp】
  5. nssl1209-奇怪的队列【贪心,权值线段树】
  6. 【二分】买礼物的艰辛
  7. JavaFX图表(五)之气泡图
  8. Spring 基于注解的配置
  9. Oracle入门(七)之表空间
  10. java面试常考系列四