gradle跟pom_Gradle多项目构建–父pom式结构

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333384.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java streams_使用Stream.peek在Java Streams内部进行窥视

java streams对于刚接触JDK 8的管道和流的Java开发人员而言, Stream接口提供的peek(Consumer)方法可以是有用的工具,有助于可视化流操作的行为。 即使是更熟悉Java流和聚合操作的Java开发人员,有时也会发现Stream.peek…

算法提高 日期计算c语言,算法提高 日期计算

//规定年份2017年1月1日 星期7#includeusing namespace std;int rn(int n) //判断是否是润年{if (n%40 && n%100!0 || n%4000)return 1;return 0;}int md[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){int year,month,day;int i,sum0,td0;while (cin>>…

IntelliJ IDEA for Mac 模块源文件的编译输出路径配置

按下组合键 Command ; 打开【项目结构】窗口,接着在左侧菜单栏中选择【Modules】,接着在右侧模块列表中选择要设置的模块,接着选择右侧的【Paths】标签,如下图所示: 不知道搞个【test ouput path】的好处在哪里&…

IntelliJ IDEA for Mac 如何在当前的普通Java项目中创建新的模块/添加模块/创建模块

文章目录添加模块的入口创建新的项目模块添加模块的入口 添加新的模块的入口有两个,如下图所示: 第一种方式,【File】 --> 【New】 --> 【Module】: 第二种方式,打开【Project Structure】窗口,然后…

react api_使用Java EE 8中的React式API加速服务

react api服务通常可以通过异步处理进行优化,即使不改变其对外界的行为。 某些服务效率不高的原因是,它们需要等待其他服务提供结果才能继续下去。 让我们看一下如何在不等待外部REST服务的情况下调用它们,并独立进行多个并行调用&#xff…

android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...

目录背景危险权限申请权限思路申请权限流程干货后续一.背景android23 API新增危险权限校验,需要手动获取:二.危险权限:日历数据android.permission-group.CALENDARandroid.permission.READ_CALENDARandroid.permission.WRITE_CALENDAR相机and…

IntelliJ IDEA for Mac 直接将模块硬盘上的根目录删除会怎么样

不通过 IDEA 删除模块文件,而是直接手动从硬盘删除模块文件,造成的结果如下图所示: 【模块内容导航窗格】的内容是根据以下两个配置文件的信息从硬盘中加载进来的: 项目根目录/.idea/modules.xml 这个文件记载了配置文件【模块名…

java 谓词_谓词::不适合Java

java 谓词Jim Laskey在OpenJDK core-libs-dev邮件列表上最近的消息“ RFR:CSR – JDK-8203428 Predicate :: not ”指出了JDK Bug JDK-8203428 [“ Predicate :: not”]。 JDK-8203428的“摘要”指出:“引入新的静态方法Predicate :: not,这将…

android root权限函数,android 4.4下app永久获取root权限的方法

本帖最后由 jackson 于 2017-4-16 20:55 编辑通过参照[FAQ11414]android KK 4.4 版本后,user 版本su 权限严重被限制问题说明http://www.voidcn.com/blog/wds1181977/article/p-6157006.html明确要修改三个地方:(1)把dalvik/vm/native/dalvik_system_Zyg…

IntelliJ IDEA 项目开发中各个目录的关系

项目根目录(Project Root):本地硬盘中存放项目内容的根目录 项目名称(Project Name):IDEA 保存的项目名称,默认和项目根目录的名称相同,可以修改。有啥作用?通过 IDEA 部…

apache spark_Apache Spark中的自定义日志

apache spark您是否曾经对运行了几个小时的Spark作业感到沮丧,但由于基础设施问题而失败了。 您会很晚才知道此故障,并浪费了数小时的时间,当Spark UI日志也无法进行事后检查时,它会更加痛苦。 你不是一个人! 在本文…

android中暂停服务,Android 装逼技术之暗码启动应用

前言喜欢的小伙伴欢迎关注,我会定期分享Android知识点及解析,还会不断更新的BATJ面试专题,欢迎大家前来探讨交流,如有好的文章也欢迎投稿。什么是暗码?在拨号盘中输入*#*##*#*后,APP 可以监控到这些输入&am…

JShell 详解

文章目录一、简介二、为什么使用 JShell三、参考示例启动 JShell退出 JShell声明定义基本类型的变量声明定义一个方法覆盖已存在的变量、方法、类的定义查看 JShell 默认导入的包自动补全功能列出所有键入的源列出已声明方法及其签名加载外部的源代码查看 JShell 提供的所有指令…

graphql_GraphQL在Wildfly群上

graphql“ GraphQL是API的查询语言,是用于使用现有数据完成这些查询的运行时。 GraphQL为您的API中的数据提供了完整且易于理解的描述,使客户能够准确地询问他们所需的内容,仅此而已,使随着时间的推移更容易开发API并启用强大的开…

android中有哪些utils的作用,AndroidUtils

多年开发Android积攒下来好多常用的工具方法,保存在随笔中,持续更新。TimeUtil/*** 获取距当前时刻的时间戳** param createTime* return*/public static String getTimestamp(long createTime) {long currrentMillis System.currentTimeMillis();// if…

Java中的关键字this_super

文章目录要点错误的理解正确的理解演示代码要点 1.在类的构造器中,可以使用 this() 调用本类的其它构造器,调用的时候根据构造器声明的参数列表传递参数值 2.super() 调用父类的无参构造器 3.super.method() 调用父类的 method() 方法 4.super.name …

Spring Hibernate教程

1.简介 在本文中,我们将演示如何利用最流行的ORM(对象关系映射)工具之一的Hibernate的功能 ,该工具可将面向对象的域模型转换为传统的关系数据库。 Hibernate是目前最流行的Java框架之一。 由于这个原因,我们在Java Co…

百度地图瓦片 android,百度地图自定义瓦片图获取

nodejs代码const request require(request);const fs require(fs);const bagpipe require(bagpipe);const TileLnglatTransform require(tile-lnglat-transform);let [x1, y1] [72.26, 54.57]; // 起始点坐标(左上角)let [x2, y2] [137.31, 17.8]; // 终点坐标(右下角)le…

IntelliJ IDEA for Mac 如何自定义快捷键_设置快捷键

文章目录设置代码补全快捷键设置展开全部的快捷键折叠全部快捷键设置代码补全快捷键 代码自动补全,即智能提示。 打开【系统偏好设置】如下图所示: 在左侧的菜单栏中找到 Keymap → Main Menu → Code → Code Completion → Basic: 设…

android8 老手机,华为多款老旧手机获升安卓8.0,流畅度飙升!

原标题:华为多款老旧手机获升安卓8.0,流畅度飙升!一直以来,在手机用户圈都有这么一个共识,那就是安卓手机不如iPhone流畅,之前安卓手机给人的印象就是容易卡顿,而谷歌则一直在为此事苦恼&#x…