maven依赖最佳实践_Maven最佳实践

maven依赖最佳实践

尽管Maven提供了“配置之上的约定”解决方案,但是仍然有足够多的必要配置引起严重的头痛。 在这篇文章中,我将与您分享一些最佳实践,以简化对POM文件的维护。
  1. 请勿使用已弃用的引用,例如$ {artifactId}或$ {pom.artifactId}。 使用新的$ {project.artifactId}语法。 请注意,此语法遵循XML文档结构,这使得记住和预测引用将导致的值变得容易。
  2. 尽量避免使用继承的属性。 开发人员可以轻松地忘记子POM使用某个属性,并更改该值,从而在意想不到的地方破坏了构建。 其次,在没有找到和检查父POM的情况下无法轻松查找属性的做法很烦人。
  3. 使用父pom的dependencymanagement部分来定义所有依赖项版本,但不要在此处设置作用域,以便所有依赖项默认情况下都可以进行作用域编译。
  4. 使用属性定义依赖项版本。 通过这种方式,您可以概览正在使用的所有版本,而无需滚动浏览依赖项部分的多个页面。
  5. 使用父pom的pluginmanagement部分来定义构建所使用的* all *插件的版本,甚至是标准的maven插件,例如maven-compile-plugin和maven-source-plugin。 这样,当发布新版本的插件时,您的构建不会突然有所不同。
  6. 当使用不在当前POM上方目录中的父POM时,请在您的父部分中定义一个空的relativePath元素。
  7. 使用依赖插件检查项目中是否存在不必要的依赖以及未声明但未使用的较少依赖。 该目标称为“分析”,因此请在控制台上运行以下命令:“ mvndependency:analyze”
  8. 确保pom文件包含下载所有依赖项所需的所有存储库引用。 如果要使用本地存储库而不是从Internet上进行海峡下载,则可以使用Maven设置文件为poms中定义的各个存储库定义镜像。
  9. 如果使用Nexus,则不要创建同时包含托管存储库和代理存储库的存储库组。 这将大大降低响应速度,因为即使托管的存储库包含请求的工件,Nexus也会检查代理存储库的远程位置。
确保还阅读了Sonatype的最佳实践 。
参考: Geert Schuring博客上来自JCG合作伙伴 Geert Schuring的Maven最佳实践 。

翻译自: https://www.javacodegeeks.com/2012/06/maven-best-practices.html

maven依赖最佳实践

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

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

相关文章

PHP 异常处理

PHP 异常处理 异常用于在指定的错误发生时改变脚本的正常流程。 异常是什么 PHP 5 提供了一种新的面向对象的错误处理方法。 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。 当异常被触发时,通常会发生&a…

如何使用Elixir和Phoenix快速入门构建CRUD REST API

这篇文章将展示如何使用Elixir和Phoenix框架构建REST API。 重点将是为持久化到Postgres数据库后端的模型提供CRUD(创建,读取,更新,删除)端点。 我应该警告你; 这是一个简单的例子。 但是,希望它…

01背包(修订版)

由于时间比较充裕,重新修订一部分。 这次把一些补充的放进来,其他的基础说明见后半部分 这些一共说明:01背包、完全背包、多重背包 将会详细说明。 三种背包混合、二维背包、分组背包、依赖背包、泛化背包 将大致说明。 01背包 如上次说明一…

java 马踏棋盘优化_我所知道的十大常用算法之马踏棋盘算法(深度搜索、贪心思想优化 )...

前言需求今天我们学习的是马踏棋盘算法,我们还是从一个场景里引入看看马踏棋盘算法也被称为骑士周游问题将马随机放在国际象棋的66棋盘Board0~5的某个方格中提示:马按走棋规则(马走日字)进行移动要求:每个方格只进入一次&#xff…

app engine_App Engine中的Google Services身份验证,第2部分

app engine在本教程的第一部分中, 我介绍了如何使用OAuth进行Google API服务的访问/身份验证。 不幸的是,正如我稍后发现的那样,我使用的方法是OAuth 1.0,显然现在Google正式弃用了OAuth 1.0,改用OAuth 2.0版本。 显然…

Django知识总结(一)

壹 ● 有关http协议 一 ● 全称 超文本传输协议(HyperText Transfer Protocol) 二 ● 协议 双方遵循的规范 http协议是属于应用层的协议(还有ftp, smtp等), 即浏览器请求消息和服务器响应消息的一系列规则 三 ● http协议的特性 http是无状态、无连接的协议(stateless, connect…

java数组使用实验报告_JAVA数组与类的定义-java实验报告

JAVA数组与类的定义-java实验报告JAVA数组与类的定义-java实验报告、实验目的与要求1、 熟悉Java类、对象和方法的一般操作练习等。2、 熟悉数组等的定义和使用。二、实验内容及步骤(包括源程序和运行结果截图)1. 编写Java小应用程序,程序中自定义一个方法&#xff…

JPA 2.1和Java EE 7中的JPQL增强功能(第1部分– JOIN ON)

Java EE 7已经存在了几年,它提供了一些非常有用且期待已久的功能,例如实体图以及对存储过程和结果映射的更好支持。 有关概述,请参阅Thorben Janssen的博客文章 。 但是,我想添加有关JPA查询语言功能的更详细的摘要。 在JPQL和Cri…

mysql+if+x+mod+2_Windows 下 MantisBT 2.X + Apache 2.4 + PHP 7 + MySQL 5.7 的环境配置

Apache 2.4.25~ Visual C Redistributable for Visual Studio 2015PHP 7.1.3~ mod_fcgid-2.3.9Mantisbt-2.2.1MySQL Database 5.7.17~ NET Framework 3.5安装 Apache前期准备1.若计算机已安装了 Apache2.4 以前的版本,请自行卸载并删除安装目录。2.以管理员身份运行…

ASP.NET MVC ActionMethodSelectorAttribute 以及HttpGet等Action特性

一、ActionMethodSelectorAttribute 其是一个抽象类,继承自Attribute,子类有NonActionAttribute、HttpGetAttribute、HttpPostAttribute、HttpPutAttribute、HttpDeleteAttribute、HttpPatchAttribute、HttpHeadAttribute、HttpOptionsAttribute和Accept…

java 中map_Java中Map集合

1. Java中Map集合1. Map中value可以重复,key不能重复。对于重复的key值来说,后放置的值对覆盖前放置的值。import java.util.HashMap;public class MapTest1{public static void main(String[] args){HashMap map new HashMap();map.put("a",…

如何在Java中对文件进行模式匹配和显示相邻行

最近,我们在jOOλ0.9.9中发布了有关超棒的窗口函数支持的文章 ,我相信这是对我们所做的库的最佳补充。 今天,我们将在一个用例中研究窗口函数的出色应用,该用例受到以下堆栈溢出问题Sean Nguyen的启发: 如何从Java 8…

64位内核第二讲,进程保护之对象钩子

64位内核第二讲,进程保护. 一丶什么是保护. 什么是保护. 比如我们安装了xxx杀毒软件.那么此时你用任务管理器关闭.是关闭不了的.原因是内核已经做了保护. 那么去掉保护的前提就是你要给自己的软件做保护. 比如我们给计算器做保护. 例如下图. 做保护.以前的病毒作者.都是想要退出…

java 类 request_java普通类得到request对象

使用拦截器import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.…

Xamarin.Forms Button长按事件

Xamarin.Forms Button长按事件 在平时的开发中,我们经常遇到需要Button能够拥有长按事件,但是在Xamarin.Forms中Button并没有该事件, 此时我们如何来实现呢? 我们知道在Xamarin.Forms中可以通过CustomRenderer来根据不同平台各自处…

java对象写入文件_将Java对象写入文件中

Java对象序列化 首先介绍一下对象序列化的目标:对象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象。 一、序列化的含义和意义: 序列化机制使得对象可以脱离程序的运行而独立存在。 对象的序列化指将一个Java对象写入IO流中,与此对应的反是,对象的反序列化…

jpql hql_无需部署即可测试JPQL / HQL

jpql hql您是否曾经想在不完全部署应用程序的情况下测试JPQL / HQL? 我们今天在这里看到的是适用于任何JPA实现的简单解决方案:Hibernate,OpenJPA,EclipseLink等。 这篇文章中找到的基本源代码来自本书:“ Pro JPA 2&a…

eclipse 代码上传github 笔记

第一步 先share project 如图所示 第二步 如果所示 第三步 点击 下面的create 然后点击完成 第四步提交 第五步: 第六步: 转载于:https://www.cnblogs.com/a8457013/p/8410471.html

java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...

笔者以前学过C语言。众所周知,C也是一门面向对象程序设计语言。还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为然。现在在学java&#x…

[Usaco2008 Feb]Eating Together麻烦的聚餐

Description 为了避免餐厅过分拥挤,FJ要求奶牛们分3批就餐。每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想所有第3批就餐的奶牛排在队尾,队伍的前端由设定为第1批就餐的奶牛占据,中间的位置就归第2批就餐的奶牛了…