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
<!-- localRepository
 50    | 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)将若干个仓库组成一个群组,简化配置。仓库组不能保存资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值