maven配置

一、下载maven

下载地址

https://maven.apache.org/download.cgi

二、安装maven

tar xf apache-maven-3.9.5-bin.tar.gz
mv apache-maven-3.9.5 /usr/local/maven
ln -s /usr/local/maven/bin/mvn /usr/local/bin/安装成功
[root@p0-jiantou-scyyglpt-web01 ~]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_111, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_111/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-696.el6.x86_64", arch: "amd64", family: "unix"

三、maven相关概念

1.仓库

仓库 就是存放 jar包 的地方。

2.中央仓库

maven存放jar的仓库称为"中央仓库"

3.私服

私服仓库 也是存放jar的仓库,它是设立在公司内部的. 主要是为了让本地计算机指向私服,这样下载jar的速度更快。然后私服在指向中央仓库。

4.本地仓库

就是安装maven的 本地计算机或者安装maven的服务器上,就是本地仓库。
使用过mvn命令后,默认maven的本地仓库会生成到当前用户的家目录下 生产成一个.m2的目录,里边的registory 目录就是本地仓库目录。

[root@node4 ~]# mvn
[root@node4 ~]# ls -a |grep m2
.m2
[root@node4 ~]# cd .m2
[root@node4 .m2]# ls
repository
[root@node4 .m2]# ls repository  #仓库是空的,因为没有打包,就没有下载任何包

四、仓库配置

1.指定本地仓库位置

[root@node4 ~]# cd /usr/local/maven/conf/
[root@node4 conf]# vim settings.xml
<!-- localRepository50    | The path to the local repository maven will use to store artifacts.51    |52    | Default: ${user.home}/.m2/repository  #这里规定了 默认的本地仓库生成的位置53   <localRepository>/path/to/local/repo</localRepository>

设置自定义路径的本地仓库

[root@node4 ~]# cd /usr/local/maven/
[root@node4 maven]# mkdir repository

修改路径

 <localRepository>/usr/local/maven/repository</localRepository>

2.指定远程仓库

这里的远程仓库 是指的是 "中央仓库"的 “镜像仓库”

[root@node4 conf]# vim settings.xml<!--镜像仓库地址一定要放在mirrors的字段里,这里的mirrors字段不需要新增,卸载--><mirrors> <!-- 中央仓库在中国的镜像 --><mirror><!--镜像地址的id,用来区分不通的镜像仓库 --><id>alimaven</id><!--- 镜像仓库名称 -><name>aliyun maven</name><!--具体的镜像地址--><url>http://maven.aliyun.com/nexus/content/groups/public/</url><!-- 对那种仓库进行镜像,简单说就是代替哪个仓库 --><mirrorOf>central</mirrorOf></mirror><mirrors>

3.指定私服仓库

<mirror><id>alimaven</id><!--具体的镜像地址--><url>私服地址</url><!--除了上边的中仓库网站镜像源来源是阿里云,所有的其他网站都使用私服仓库--><mirrorOf>*</mirrorOf>
</mirror>

配置访问私服仓库的用户名和密码

<servers><server><id>自定义唯一ID</id><username>登录私服仓库的用户名</username><password>登录私服仓库的密码</password></server><server><id>自定义唯一ID</id><username>登录私服仓库的用户名</username><password>登录私服仓库的密码</password></server>  
</servers>

五、maven命令

命令含义
mvn compile编译
mvn clean清理 (删除target目录)
mvn test测试
mvn package打包
mvn install安装到本地仓库
mvn clean install这是组合执行方式,先清理在安装

1.mvn compile

进入到项目下,在有pom.xml的目录下进行操作

[root@node4 apigateway]# ls
pom.xml  src[root@node4 apigateway]# mvn compile

相关的依赖已经下载成功

[root@node4 ~]# cd /usr/local/maven/repository/
[root@node4 repository]# ls
aopalliance               ch                 commons-codec          commons-fileupload  commons-net  javax  org    tk        xpp3
asm                       cn                 commons-collections    commons-io          dom4j        junit  oro    wsdl4j
backport-util-concurrent  com                commons-configuration  commons-lang        io           mysql  redis  xml-apis
cglib                     commons-beanutils  commons-discovery      commons-logging     jakarta      net    stax   xmlpull

编译后多了targer目录

[root@node4 apigateway]# ls
pom.xml  src  target

2.mvn clean

在项目下清理,发现target目录没有了

[root@node4 apigateway]# mvn clean[root@node4 apigateway]# ls
pom.xml  src

3.mvn package

发现出现了target目录和打包的jar包

[root@node4 apigateway]# ls
pom.xml  src  target
[root@node4 apigateway]# cd target/
[root@node4 target]# ls
apigateway.jar  apigateway.jar.original  classes  generated-sources  maven-archiver  maven-status

4.mvn install

不经会生产jar包,还会安装到本地仓库中

六、多环境打包

在打包时候,需要根据不通的环境进行打包,比如生产环境和测试环境链接的数据库是不同的,那么打包的时候也需要根据环境使用不同环境的数据库。开发会在配置文件提前定义好不同环境的链接数据库的"变量",在打包时候,只要传入调用的哪个环境的变量,就会调用相关环境的变量。例如:

在xml文件中定义

<profiles><profile><!--定义环境名称--><id>prod</id><!--定义环境中的属性值(可以理解为变量)--><properties><jdbc.url>jdbc:mysql://192.168.1.1:3306</jdbc.url></properties></profile><profile><id>test</id><properties><jdbc.url>jdbc:mysql://192.168.2.2:3306</jdbc.url></properties></profile>
</profiles>

在打包时。传入使用的环境名称,调用的变量值就会全部变成对应环境中所定义的变量值

mvn install -P 环境名称
例如调用生产环境命令如下:
mvn install -P prod 

七、私服

Nexus 是一个强大的 Maven 仓库管理器。它的仓库类型介绍3种:

仓库类型解释
宿主仓库(hosted)保存无法从中央仓库获取的资源
代理仓库(proxy)代理远程仓库,通过nexus访问中央仓库
仓库组(group)将若干个仓库组成一个群组,简化配置。仓库组不能保存资源

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

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

相关文章

Leetcode刷题详解——全排列

1. 题目链接&#xff1a;46. 全排列 2. 题目描述&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],…

pcigo图床插件的简单开发

1.前言&#xff1a; 如果想写一个图床并且投入使用&#xff0c;那么&#xff0c;接入picgo一定是一个不错的选择。picgo有着windows&#xff0c;mac&#xff0c;linux等多个客户端版本。实用且方便。 2. 开发的准备&#xff1a; 2.0. 需要安装一个node node这里我就不详细说…

网络攻击的威胁仍在上升、企业该如何解决

近十年来&#xff0c;网络攻击的频率和规模不断增加&#xff0c;对网站和在线资产构成了严重威胁。解决网站被攻击的问题需要采用多层次的安全策略&#xff0c;其中CDN&#xff08;内容分发网络&#xff09;的防护角度发挥了关键作用。本文将通过通俗易懂的方式从CDN的角度分析…

3.线性神经网络-3GPT版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 线性回归基础优化算法一、线性回归1、买房案例2、买房模型简化3、线性模型4、神经网络5、损失函数6、训练数据7、参数学习8、显示解9、总结 二、 基础优化算法1、梯度下降2、学习率3、小批量随机梯度下降4、批量大小5、…

ADAS数据平台实践总结

随着汽车智能化发展&#xff0c;adas数据分析变得越来越重要&#xff0c;此处根据个人认知对adas数据平台进行分析。 概述 adas数据一般来自于汽车厂商发布新车的前的 实际道路测试&#xff08;路试&#xff09;&#xff0c;相对于其他数据&#xff0c;具有如下特征&#xff1…

jetsonTX2 nx配置yolov5和D435I相机,完整步骤

转载一篇问题解决博客&#xff1a;问题解决 一、烧录系统 使用SDK烧录 二、安装archiconda3 JETSON TX2 NX的架构是aarch64,与win10,linxu不同,所以不能安装Anaconda&#xff0c;这里安装对应的archiconda。 1. 安装 wget https://github.com/Archiconda/build-tools/rel…

ACM MM 2023 | 清华、华为联合提出MISSRec:兴趣感知的多模态序列推荐预训练

©PaperWeekly 原创 作者 | 王锦鹏 单位 | 清华大学深圳国际研究生院 研究方向 | 多模态检索、推荐系统 序列推荐是一种主流的推荐范式&#xff0c;目的是从用户的历史行为中推测用户偏好&#xff0c;并为之推荐感兴趣的物品。现有的大部分模型都是基于 ID 和类目等信息做…

如何搭建低成本亚马逊aws云服务器

0. 环境 win10 火狐浏览器 1. 登录 https://aws.amazon.com/cn/ -> 登录 -> 根用户 -> ********, **** 如果未有&#xff0c;需要注册&#xff0c;去年我注册的&#xff0c;麻烦之处是需要添加信用卡。可以淘宝aws搜索商家帮忙处理。 2. 控制台 在控制台主页&…

华为政企数据中心网络交换机产品集

产品类型产品型号产品说明 核心/汇聚交换机CE8850-EI-B-B0BCloudEngine 8850-64CQ-EI 提供 64 x 100 GE QSFP28&#xff0c;CloudEngine 8800系列交换机是面向数据中心推出的新一代高性能、高密度、低时延灵活插卡以太网交换机&#xff0c;可以与华为CloudEngine系列数据中心…

Leetcode41缺失的第一个正数

思路&#xff1a;原地哈希表 长度为N的数组&#xff0c;没有出现过的正整数一定是1~N1中的一个。 此时会思考能不能用一个哈希表来保存出现过的1~N1的数&#xff0c;然后从 1 开始依次枚举正整数&#xff0c;并判断其是否在哈希表中 但是题目要求常数级别的空间&#xff0c;就不…

VB.NET—窗体引起的乌龙事件

目录 前言: 过程: 总结: 升华: 前言: 分享一个VB.NET遇到的一个问题&#xff0c;开始一直没有解决&#xff0c;这个问题阻碍了很长时间&#xff0c;成功的变成我路上的绊脚石&#xff0c;千方百计的想要绕过去&#xff0c;但事与愿违怎么也绕不过去&#xff0c;因为运行不了…

本地idea远程调试服务器程序

本文主要介绍idea本地调试远程服务器程序的方式。相信很多同行跟我一样&#xff0c;在最初接触公司项目的时候&#xff0c;遇到测试提出的缺陷&#xff0c;往往会在本地进行调试、替换jar包远程调试等方式&#xff0c;本地调试往往会导致数据和环境不一致的问题使得问题无法复现…

Python与CAD系列高级篇(十八)文本前后缀及部分内容替换

0 简述 本篇介绍以下几项功能开发:1.选择文本并将指定前缀替换为特定文字;2.选择文本并将指定后缀替换为特定文字;3.选择文本并将指定部分内容替换为特定文字。 1 选择文本并将指定前缀替换为特定文字 需求: ① 用户定义需要替换的文本前缀及替换后的文字。 ② 将选中的文本…

生成带分表和水印的excel压缩文件

功能描述 将查询结果生成带分表和水印的excel压缩文件 功能点 1、将查询结果导出为excel文件 2、每个表格存放50万条数据&#xff0c;超过50万条数据&#xff0c;生成新的分表 3、生成的表格需要添加水印 4、将生成的全部分表&#xff0c;打包成zip压缩文件 引入依赖 <…

33. 搜索旋转排序数组(二分法)

1、算法思路 题目要求必须设计一个时间复杂度为 O(log n) 的算法解决此问题&#xff0c;所以我们可以采用二分法。 Step1. 先把 nums[0] 作为目标值&#xff0c;通过二分法找到旋转点索引&#xff1b; Step2. 如果旋转点索引为0&#xff0c;则数组本身就是升序的&#xff0c…

在C++中,当无符号数和有符号数进行减法运算时,通常有符号数会被转换为无符号数

一段程序引发的问题&#xff1a; for (int i 0; i < s.length() - L; i) {string str s.substr(i, L);if ( hash[str] 2) {res.push_back(str);}} }terminate called after throwing an instance of std::out_of_rangewhat(): basic_string::substr: __pos (which is 2…

SpringMVC Day 11 : 零 xml 配置

前言 欢迎来到《Spring MVC Day 11: 零XML配置》&#xff01;在之前的学习中&#xff0c;我们已经掌握了如何使用Spring MVC框架构建灵活、高效的Web应用程序。然而&#xff0c;我们可能还记得那些繁琐的XML配置文件&#xff0c;它们是我们在过去几天中使用的方式。 好消息是…

软考高项-配置管理相关论文

论文思路 制订配置管理计划 配置管理的目标和范围配置管理角色和责任安排建立了开发库、受控库、产品库三个配置库配置项识别 识别配置项目需求、设计文档、程序代码、项目管理计划等内容&#xff0c;配置项分配一些属性&#xff0c;比如配置项的名称、编号、版本号、责任人等…

Stable Diffusion 的提示词使用技巧

推荐Stable Diffusion自动纹理工具&#xff1a; DreamTexture.js自动纹理化开发包 什么是提示语&#xff1f; 提示语是人工智能中的一个重要组成部分&#xff0c;尤其是自然语言处理 &#xff08;NLP&#xff09;。在AI自人工智能中&#xff0c;想要获得好的效果&#xff0c;简…

JavaScript执行上下文和调用栈

上节课我们已经说过了&#xff0c;JavaScript的代码执行是发生在js引擎中的调用堆栈的&#xff0c;但是具体是如何运行的&#xff0c;我们来详细剖析一下 如何执行上下文 执行上下文&#xff1a; 执行上下文是指在JavaScript中代码被执行时所创建的环境。它包含了变量、函数、…