Devops实现之maven详解(三)

1.Maven查看当前生效配置、pom、环境变量等命令(mvn help用法)

  1. 检查当前Maven环境启用的文件
    mvn help:effective-settings
  2. 查看当前项目的pom配置,包括所有依赖
    mvn help:effective-pom
  3. 查看当前处于激活状态的profile
    mvn help:active-profiles
  4. 指定使用某个配置文件执行Maven命令
    mvn -s
    mvn -s ~/.m2/settings_local.xml clean deploy
  5. 检查环境

​ 查看当前项目的所有mvn配置

​ mvn -X

6.打印所有可用的环境变量和Java系统属性

​ mvn help:system

2.maven-metadata.xml文件的作用

总结:解决相同版本号,修改时间不同,如何获取最新内容。

过程:maven在build后从maven服务器Downloading 最新的maven-metadata.xml这个文件可以看作版本信息,作为一个版本比对,和本地仓库(.m2/repository)中jar包文件夹下的maven-metadata-local.xml(本地jar包maven-metadata.xml的副本)做比较,看lastUpdated时间戳值,哪个值更大,就以哪个文件为准。这里需要注意的是,若是maven-metadata-local.xml文件的值大,这时候就中止下载了,直接使用本地的jar包,所以你得自己准备好自己想用的jar包。

更新策略:

找到本地的maven配置文件settings.xml,打开后找到下面:

 <repository>
​    <id>snapshots</id>
​    <name>Snapshots</name>
​    <url>url</url>
​    <releases>
​     <enabled>false</enabled>
​    </releases>
​    <snapshots>
​     <enabled>true</enabled>
​     <updatePolicy>always</updatePolicy>
​    </snapshots>
 </repository>

找到xml中的updatePolicy标签,改为never即可。

<repository>
​    <id>snapshots</id>
​    <name>Snapshots</name>
​    <url>url</url>
​    <releases>
​     <enabled>false</enabled>
​    </releases>
​    <snapshots>
​     <enabled>true</enabled>
​     <updatePolicy>never</updatePolicy>
​    </snapshots>
   </repository>

改完后再去build就不会去download maven-metadata.xml文件了,根据自己需求改。

这个属性为更新策略,aways:每次,never:从不,daily:每日。

公司配置

<metadata modelVersion="1.1.0">
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-auth-client</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20210318.141355</timestamp>
<buildNumber>5</buildNumber>
</snapshot>
<lastUpdated>20210318141355</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-20210318.141355-5</value>
<updated>20210318141355</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-20210318.141355-5</value>
<updated>20210318141355</updated>
</snapshotVersion>
<snapshotVersion>
<classifier>sources</classifier>
<extension>jar</extension>
<value>1.0-20210318.141355-5</value>
<updated>20210318141355</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>

3.Maven pom文件中dependency scope用法

在Maven中依赖的域有: compile、provided、runtime、system、test、import。

依赖范围(Scope) 编译classpath 测试classpath 运行时classpath 传递性 说明
compile Y Y Y Y spring-core
test - Y - - junit
provided Y Y - - servlet-api
runtime - Y Y Y jdbc驱动
system Y Y - Y 本地jar包

compile(默认)

当依赖的scope为compile的时候,那么当前这个依赖的包,会在编译的时候被加入进来,并且在打包(mvn package)的时候也会被加入进来。

编译范围有效,在编译与打包时都会加入进去。

provided

当依赖的scope为provided的时候,在编译和测试的时候有效,在执行(mvn package)进行打包时不会加入。比如, 我们开发一个web应用,在编译时我们需要依赖servlet-api.jar,但是在运行时我们不需要该 jar包,因为这个jar 包已由web服务器提供,如果在打包时又被加入进去,那么就可能产生冲突。此时我们就可以使用 provided 进行范围修饰。

system

与provided相同,不过被依赖项不会从maven仓库获取,而是从本地文件系统拿,需要配合systemPath属性使用。比如:

<dependency>
    <groupId>org.open</groupId>
    <artifactId
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值