Java maven项目 pom文件 中的 部分属性

项目中一般使用maven进行模块管理,每个模块下都对应有各自模块自己的pom文件,pom文件中维护了各模块之间的依赖和继承关系,结构更清晰,达成项目模块化。

项目模块化的好处是:1、可以将通用的部分抽离出来,方便重用;2、修改一部分代码不再是build整个项目,缩短了build时间;

使用maven进行模块划分管理,一般都会有一个父级项目,所有的父级项目都有一个的pom文件的

pom文件的几个必须配置的属性:

1、packing打包类型
可选值为:pom、jar、war等类型;
如果是需要部署的项目,则需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打包成jar类型。
默认是jar类型,如果不作配置,maven会将该项目打成jar包;
所有的父级项目 packing属性 都为pom;
子类项目的packaging值只能是war或者jar
 

2、GAV(groupId、artifactId、version)
对于各个子项目,需要在其对应的pom文件开头申明对父级项目的引用,通过GAV实现。
对于子项目自己的配置,GV如果不配置,则会从父级项目的配置继承过来。
 

3、modules
通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。
 

4、dependencies
子模块可通过此标签来添加自己的依赖
 

5、relativePath(参考:http://bcxw.net/article/621.html
搭建maven项目,子模块指定父模块试,经常会在parent下面出现relativePath类似下面:

<parent>
	<groupId>net.itxw</groupId>
	<artifactId>test</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<relativePath/>
</parent>

这个<parent>下面的<relativePath>属性,就是parent的路径,具体来说就是你引用的是这个parent项目;

默认不设置<relativePath/>,那默认值就是 ../pom.xml,相当于<relativePath>../pom.xml</relativePath>;

设置指定路径:<relativePath>路径/pom.xml</relativePath>,则会从指定的本地路径中获取parent的pom。

6、repositories(https://www.cnblogs.com/gengaixue/p/6933773.html
用来配置maven项目的远程仓库。示例如下:

    <!--配置maven项目的远程仓库。-->
    <repositories>
        <repository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

按照上面配置是实现了配置maven项目的远程仓库,但是,这样的配置,如果我们创建一个项目,就需要配置一次,很麻烦。可以将上面的远程仓库配置在maven的setting.xml里面.这样就可以实现只配置一次。

7、pluginRepository
用来配置maven插件的远程仓库。示例如下:

    <!--配置maven插件的远程仓库-->
    <pluginRepositories>
        <pluginRepository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

8、build属性
参考:https://blog.csdn.net/xiaoyao2246/article/details/88355463

9、dependencyManagement 和 dependencies

参考:https://blog.csdn.net/inflaRunAs/article/details/103542437
参考:https://www.cnblogs.com/hjw-zq/p/11708799.html

发布了134 篇原创文章 · 获赞 26 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/inflaRunAs/article/details/104736368