依赖管理和Maven

Maven伟大而成熟。 几乎所有事物都总有解决方案。 您可能在组织项目上遇到的主要情况是依赖管理。 而不是每个项目都没有自己的依赖关系,您需要一种集中化的方式来继承那些依赖关系。

在这种情况下,您可以在父舞会上声明托管依赖项。 在我的示例中,我只想包含Akka流依赖项。

 <? xml version = "1.0" encoding = "UTF-8" ?>  < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion >4.0.0</ modelVersion > < groupId >org.example</ groupId > < artifactId >maven-dependency-management</ artifactId > < packaging >pom</ packaging > < version >1.0-SNAPSHOT</ version > < properties > < akka.version >2.5.31</ akka.version > < akka.http.version >10.1.11</ akka.http.version > < scala.binary.version >2.12</ scala.binary.version > </ properties > < modules > < module >child-one</ module > </ modules > < dependencyManagement > < dependencies > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-stream_2.12</ artifactId > < version >${akka.version}</ version > </ dependency > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-http_2.12</ artifactId > < version >${akka.http.version}</ version > </ dependency > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-http-spray-json_2.12</ artifactId > < version >${akka.http.version}</ version > </ dependency > </ dependencies > </ dependencyManagement >  </ project > 

我使用的是依赖性管理模块。

现在,子项目无需指定版本即可包含这些库。 派生和管理版本至关重要。 如果版本不兼容,可能会带来许多不愉快的惊喜。

现在,在子模块上,由于版本是子模块,因此声明了没有版本的版本。

 <? xml version = "1.0" encoding = "UTF-8" ?>  < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < parent > < artifactId >maven-dependency-management</ artifactId > < groupId >org.example</ groupId > < version >1.0-SNAPSHOT</ version > </ parent > < modelVersion >4.0.0</ modelVersion > < artifactId >child-one</ artifactId > < dependencies > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-stream_2.12</ artifactId > </ dependency > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-http_2.12</ artifactId > </ dependency > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-http-spray-json_2.12</ artifactId > </ dependency > </ dependencies >  </ project > 

另一个需要注意的是,有时我们想使用另一个项目的依赖项管理,而不必将该项目作为父项。 在这些情况下,当您已经具有父项目时,您需要包括来自父项目的依赖关系管理。

 <? xml version = "1.0" encoding = "UTF-8" ?>  < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion >4.0.0</ modelVersion > < groupId >org.example</ groupId > < artifactId >independent-project</ artifactId > < version >1.0-SNAPSHOT</ version > < dependencyManagement > < dependencies > < dependency > < artifactId >maven-dependency-management</ artifactId > < groupId >org.example</ groupId > < version >1.0-SNAPSHOT</ version > < type >pom</ type > < scope >import</ scope > </ dependency > </ dependencies > </ dependencyManagement > < dependencies > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-stream_2.12</ artifactId > </ dependency > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-http_2.12</ artifactId > </ dependency > < dependency > < groupId >com.typesafe.akka</ groupId > < artifactId >akka-http-spray-json_2.12</ artifactId > </ dependency > </ dependencies >  </ project > 

如您所见

 < dependencyManagement > < dependencies > < dependency > < artifactId >maven-dependency-management</ artifactId > < groupId >org.example</ groupId > < version >1.0-SNAPSHOT</ version > < type >pom</ type > < scope >import</ scope > </ dependency > </ dependencies > </ dependencyManagement > 

我们包括了另一个项目的依赖性管理,可以将其应用于继承多个项目的依赖性。

翻译自: https://www.javacodegeeks.com/2020/06/dependency-management-and-maven.html

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

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

相关文章

linux ps 代码,Linux ps命令详解(示例代码)

ps命令是Process Status的缩写, 用来列出系统中当前运行的那些进程. ps命令列出的是当前那些进程的快照&#xff0c;就是执行ps命令的那个时刻的那些进程&#xff0c;如果想要动态的显示进程信息&#xff0c;就可以使用top命令ps常见命令参数********* simple selection ******…

Apache Kafka消费者再平衡

消费者重新平衡决定哪个消费者负责某些主题的所有可用分区的哪个子集。 例如&#xff0c;您可能有一个包含20个分区和10个使用者的主题。 在重新平衡结束时&#xff0c;您可能希望每个使用者都从2个分区中读取数据。 如果关闭了这些使用者中的10个&#xff0c;则可能会期望每个…

linux系统ll历史,Linux操作系统原理笔记

在Linux操作系统内核内部&#xff0c;进程是通过一个链表&#xff0c;而且是一个双向链表来管理的。进程描述符&#xff1a;每一个进程都有其描述符&#xff0c;每一个描述符彼此之间都有关联性的。双向链表&#xff1a;一个进程内部可能包含多个线程。上下文切换(Context swtc…

java工程师的终极书单_Java 9 –终极功能列表

java工程师的终极书单这篇文章将针对即将到来的Java 9版本进行更新&#xff0c;新增功能 &#xff08; 最新更新&#xff1a;2014年 9月9日 &#xff09; OpenJDK开发正在加快速度&#xff1a;2014年3月Java 8发布后&#xff0c;我们预计将进入2年的发布周期。 据报道&#xf…

称之为例外?

尽管这是一个与测试和Wiremock有关的Java示例&#xff0c;但它涉及一个更普遍的问题。 我们正在尝试重试Wiremock的verify方法&#xff0c;该方法可能会在我们要检查的端点被命中之前由测试调用。 在这种情况下&#xff0c;我们想在几秒钟后重试一次直到超时。 有趣的是&#…

c语言字符大于等于怎么打,c语言大于等于怎么打?

c语言大于等于怎么打&#xff1f;C语言‘大于等于符号是“>”&#xff1b;“>”是关系运算符用于比较运算。包括大于(>)、小于()、小于等于(<)和不等于(!)六种。注意要在英文的输入状态下写c代码。知识拓展&#xff1a;C语言运算符号指的是运算符号。C语言中的符号…

用c语言编写的源文件经过编译,若没有产生编译错误,则系统将,用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将(??)...

用C语言有产译错拖拉动工:旋是用一种耕机耕作机(件的机具智慧职教作部)驱。编写编译标准是消商品衡量和品价格价值质的直接费者。文件误则单反卡为相机用的最常存储。能给您提网球的(大力拍上量)是供最在击球时&#xff0c;的手的一使你舒服又能域感最个区。的是下列说法正确&a…

junit:junit_简而言之,JUnit:Hello World

junit:junit对于Java世界中的开发人员而言&#xff0c; JUnit似乎是最受欢迎的测试工具 。 因此&#xff0c;难怪就此主题已经写了一些好书 。 但是&#xff0c;通过以顾问为生&#xff0c;我仍然经常遇到程序员&#xff0c;他们至多对工具及其正确用法都不了解。 因此&#x…

android 多个复选框,Android UI控件之CheckBox(复选框、多选框)

上一篇文章中学习了RadioButton。知道了RadionButton的基本用法&#xff0c;实现起来也是听简单的和RadioButton一样CheckBox也是一个使用的非常多的控件&#xff0c;Android中它的的用法也挺简单的。以一个例子程序为例&#xff1a;同样先看一个常规的实现&#xff1a;布局文件…

android调用虚拟摄像头方法,Android:如何在模拟器中使用网络摄像头?

我通过在AVD Manager中将前置摄像头设置为“ webcam0”将摄像头连接到仿真器。 启动模拟器的相机应用程序时&#xff0c;出现错误CameraService::connect X (pid 702) rejected (invalid cameraId 0).这是Android源代码的相关部分&#xff1a;sp CameraService::connect(const …

神话般的代码

考虑以下代码段&#xff1a; int max 10; int a 0; while (true) {// do a thing that may result in an early return if (a > max) {break;} }throw new RuntimeException("It ran out of attempts");上面有一些WTF。 循环有点不可思议&#xff0c;控制流似乎…

android listview asynctask,Android精通之AsyncTask与ListView讲解

版权声明&#xff1a;未经博主允许不得转载标题图AsyncTask了解AsyncTask异步&#xff0c;需要了解一下异步任务(多线程)&#xff0c;什么是线程&#xff0c;可以这么说线程好比边吃饭边看电视&#xff0c;AsyncTask是为了方便后台线程中操作更新UI&#xff0c;本质为Handler异…

打破了vs你错了

为微服务构建REST API时&#xff0c;需要做出一些关于响应的设计决策。 某些响应显然是微服务周围协议的产物–例如3xx代码之类的东西都与重定向和路由有关。 通常&#xff0c;您将尝试获取正确的2xx代码以取得成功。 如有疑问&#xff0c;将为200&#xff08;确定&#xff09…

android lable标签,android:label说明

文章目录1. 说明android:label 用于app 在切换activity的时候,自动更换左上角的显示2. 代码架构3. String.xml 字符串资源文件My Application主界面 labsecond 界面 lab4. AndroidMainfest.xmlpackage"com.example.myapplication">android:allowBackup"true&…

Neo4J OGM与Quarkus

在下面的视频中&#xff0c;我演示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例。 看一下GitHub上的示例项目 。 我为咖啡豆创建了一个示例域&#xff0c;其中包含我们可以查询和匹配的某些风味配置文件。 红色节点是来自某个国家/地区的咖啡豆&#xff0c;味道像…

鸿蒙os内测版应用名称,谁知道报名鸿蒙系统公测,应用名称怎么填的?

[分享交流]谁知道报名鸿蒙系统公测&#xff0c;应用名称怎么填的&#xff1f;92209电梯直达huafen327001442初窥门径发表于 2020-12-18 21:17:21来自&#xff1a;HUAWEI Mate 30 Pro 5G最新回复 2020-12-26 21:47:39Screenshot_20201218_210913_com.tencent.mm_edit_1719993392…

命令模式应用_命令设计模式的应用

命令模式应用嗨&#xff0c;您好&#xff01; 今天&#xff0c;我将与您分享一种非常出色的编程设计模式。 它有很多用法&#xff0c;是我的最爱之一。 编程设计模式命令具有多种用例。 在这篇文章中&#xff0c;我们将看到如何实现来自现实世界的东西。 我们将使用电子汽车钥…

Java XMPP负载测试工具

在本文中&#xff0c;我们将开发用Java编写的XMPP负载测试工具。 目录 1.简介 2. XMPP负载测试工具 3.先决条件 4. LoadXmppTest Java程序 4.1。 创建一个新的Maven项目 4.2。 创建主类 4.3。 XmppManager类 4.4。 建立 4.5。 负载测试 5.总结 6.参考 7.下载Maven项目 1.简介 …

python get()函数_C++使用ffpython嵌入和扩展python(python2和python3)

C使用ffpython嵌入和扩展python&#xff08;python2和python3&#xff09;摘要:在服务器编程中&#xff0c;经常会用到python脚本技术。Python是最流行的脚本之一&#xff0c;并且python拥有定义良好的C API接口&#xff0c;同时又有丰富的文档&#xff0c;与C结合非常的适合。…

鸿蒙系统的挑战,简单的讲解下何为鸿蒙系统,可能会挑战你的认知颠覆你的想象...

本帖最后由 一梦盛夏 于 2020-12-2 17:33 编辑这篇文章可能会颠覆你的想象&#xff0c;挑战你的认知&#xff0c;请耐心阅读。今天不说专业术语&#xff0c;全部用比喻方式来聊&#xff0c;这样会更明白一些&#xff0c;也欢迎大家一起来讨论。首先&#xff0c;我们先聊聊何为鸿…