Maven配置文件解读

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

随着maven管理依赖越来越流行,有必要了解一下pom文件的配置


一、pom文件里都有哪些配置

<project>
...
<dependencies>
    <dependency>
        <groupId>实际项目</groupId>
     <artifactId>模块</artifactId>
     <version>版本</version>
     <type>依赖类型</type>
     <scope>依赖范围</scope>
     <optional>依赖是否可选</optional>
     <!—主要用于排除传递性依赖-->
     <exclusions>
         <exclusion>
           <groupId>…</groupId>
          <artifactId>…</artifactId>
       </exclusion>
     </exclusions>
  </dependency>
<dependencies>
...
</project>

project 是根元素,声明了一些POM相关的命名空间及xsd元素

modelVersion指定了当前POM的版本,对于Maven 3来说,值只能是4.0.0

groupId定义了项目属于哪个组织,通常是组织域名的倒序

artifactId定义了项目在组织中的唯一ID

version指定了项目当前的版本,SNAPSHOT意为快照,说明该项目还处于开发中

name 声明了一个对于用户更为友好的项目名称

<repositories>
	<repository>
		<id>ali-maven</id>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>true</enabled>
			<updatePolicy>always</updatePolicy>
			<checksumPolicy>fail</checksumPolicy>
		</snapshots>
	</repository>
</repositories>

repositories 可以包含一个或者多个repository元素,以声明一个或者多个仓库

id,仓库声明的唯一id,需要注意的是,Maven自带的中央仓库使用的id为central,如果其他仓库也使用了该id,就会覆盖中央仓库的配置

url,指向了仓库的地址

releases和snapshots,用来控制Maven对于发布版构件和快照版构件的下载权限

enabled子元素为 true 时表示可以从仓库下载发布版构件和快照版构件

updatePolicy 子元素用来配置Maven从远处仓库检查更新的频率

1)默认值是daily,表示每天检查一次

2)never 表示从不检查

3)always表示每次构建时检查更新

4)interval表示每隔X分钟检查一次更新(X为任意整数)

checksumPolicy 子元素用来配置Maven检查校验的策略

当checksumPolicy的值为默认的warn时,Maven会在执行构建时输出警告信息

值为fail 时,Maven遇到校验错误就让构建失败

值为ignore时,Maven将完全忽略校验

<distributionManagement>
        <repository>
            <id>releases</id>
            <name>public</name>
            <url>http://59.50.95.66:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Snapshots</name>
            <url>http://59.50.95.66:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
</distributionManagement>

repository表示发布版本构件的仓库

snapshotRepository 表示快照版本(开发测试用)的仓库

这两个元素都需要配置id、name和url,id为远程仓库的唯一标识,name是为了方便阅读,url表示仓库的地址

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>

<mirrorOf>*</mirrorOf>,匹配所有远程仓库

<mirrorOf>central</mirrorOf> 表示任何对于中央仓库的请求都会转至该镜像

二、maven常用命令

mvn clean

表示运行清理操作(会默认把target文件夹中的数据清理)

mvn clean compile

表示先运行清理之后运行编译,会将代码编译到target文件夹中

mvn clean test

运行清理和测试

mvn clean package

运行清理和打包

mvn clean install

运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用

mvn clean deploy

运行清理和发布(发布到私服上面)

mvn help:effective-settings

查看 Maven 的有效配置信息

三、maven常用属性

${project.build.sourceDirectory}

项目的主源码目录,默认为src/main/java/

${project.build.testSourceDirectory}

项目的测试源码目录,默认为 /src/test/java/

${project.build.directory}

项目构建输出目录,默认为 target/

${project.build.outputDirectory}

项目主代码编译输出目录,默认为 target/classes/

${project.build.testOutputDirectory}

项目测试代码编译输出目录,默认为 target/testclasses/

${project.groupId}

项目的 groupId

${project.artifactId}

项目的 artifactId

${project.version}

项目的 version,于 ${version} 等价

${project.build.finalName}

项目打包输出文件的名称,默认为${project.artifactId}${project.version}


总结

以上就是常用的pom文件中的属性介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值