[maven]-pom.xml常用属性

pom,Project Object Model,项目对象模型
一般maven项目通过pom.xml文件配置项目,以下为常用属性

属性

artifactId

项目的通用名称

groupId

项目或者组织的唯一标志,并且配置时生成的路径也是由此生成.,一般在仓库中的位置一般有一部分是该相对路径

例如com.mycompany.app生成的相对路径为:/com/mycompany/app

packaging

打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par,maven-archetype

pom

pom文件一个重要的属性就是packaging(打包类型),pom的意思是使用maven分模块管理

一般具有module的父级项目的pom文件中都有pom设置,packaging默认类型jar类型,如果不做配置,maven会将该项目打成jar包

maven-archetype:

用于声明archetype 项目,而且需要以下两个条件:
1)必须添加插件的扩展
2)确保build可重用,必须具有锁定archetype插件的版本,在pluginManagement中

<project>
	<packaging>maven-archetype</packaging>
	......
	<build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.archetype</groupId>
                <artifactId>archetype-packaging</artifactId>
                <version>3.0.1</version>
            </extension>
        </extensions>

        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

scm-Software Configuration Management

项目在 svn/git 上对应的资源

<!-- domain:  经常用到的个人或公司 git 地址域名-->
<!-- path:  项目git中间用到的固定路径。例如 '/departname/teamname/'  -->
<scm>
    <url>http://git.domain.cn/path/parent-maven-archetype.git</url>
    <connection>scm:git:http://git.domain.cn/path/parent-maven-archetype.git</connection>
    <developerConnection>scm:git:http://git.domain.cn/path/parent-maven-archetype.git</developerConnection>
</scm>

build

主要是用于引入用于构建时引用的包

distributionManagement

用于配置分发管理,配置相应的产品发布信息,主要用于发布,在执行mvn deploy后表示要发布的位置

mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件

配置POM的来指定Maven分发构件的位置:

<distributionManagement>
    <repository>
        <id>Release</id>
        <name>Nexus Release</name>
        <url>http://alm.dnsdomain.cn/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>Snapshot</id>
        <name>Nexus Snapshots</name>
        <url>http://alm.dnsdomain.cn/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>

如果是快照版本(Snapshot),执行mvn deploy时会自动发布到快照版本库中。而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。
如果是正式发布版本(Release),那么在执行mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块。在不更改版本号的情况下,编译打包时,如果本地已经存在该版本的模块则使用本地的而不是主动去镜像服务器上下载。

本机安装的maven的conf文件夹中的settings.xml文件中,server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。将认证信息放到settings下而非POM中,是因为POM往往是它人可见的,而settings.xml是本地使用的

<settings>
    ...    
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>admin</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>admin</password>
        </server>
    </servers>
    ...
</settings>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三知之灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值