maven的pom文件标签的用法

本文详细介绍了Maven的pom.xml文件中各项配置的用途,包括基本设置如modelVersion、groupId、artifactId、version和packaging,以及dependencies、dependencyManagement、modules、properties等元素的作用。同时,讲解了dependencies与dependencyManagement的区别,构建过程中的资源处理和插件配置,分发配置如repository和distributionManagement,以及仓库和环境配置。文章旨在帮助读者理解并熟练掌握Maven项目配置。
摘要由CSDN通过智能技术生成

一、基本设置
1. 配置说明
<!-- 模型版本。maven2.0必须是这样写,现在是maven2唯一支持的版本 -->  
<modelVersion>4.0.0</modelVersion>    

<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.winner.trade,maven会将该项目打成的jar包放本地路径:/com/winner/trade -->         
<groupId>com.winner.trade</groupId>

<!-- 本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>...</artifactId>

<!-- 本项目目前所处的版本号 --> 
<version>1.0.0</version>

<!-- 打包的机制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默认为jar -->
<packaging>jar</packaging>

<!-- 定义本项目的依赖关系 --> 
<dependencies>...</dependencies>

<!-- 父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。坐标包括group ID,artifact ID和 version或者还有relativePath -->  
<parent>...</parent>

<!-- 定义本项目的依赖关系 --> 
<dependencyManagement>...</dependencyManagement>

<!-- 子模块代码,对modules下的模块进行聚合 --> 
<modules>...</modules>

<!-- 为pom定义一些常量,在pom中的其它地方可以直接引用 使用方式 如 :${file.encoding} -->  
<properties>...</properties>

2. dependencies和dependencyManagement的区别
1)dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)

2)dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本

二、构建过程的设置
1. 示例
<build>
    <finalName>platform-b2c</finalName>
    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>**/*.xls</exclude>
            </excludes>
        </resource>
        <!-- xls文件不能filter处理,需区分出来 -->
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <filtering>false</filtering>
            <includes>
                <include>**/*.xls</include>
            </includes>
        </resource>
    </resources>
    <plugins>到时候详细看</plugins>
    <pluginManagement>到时候详细看</pluginManagement>
</build>

2. 配置说明
<!-- 产生的构件的文件名,默认值是${artifactId}-${version}。 -->  
<finalName>myPorjectName</finalName>    

<!-- 构建产生的所有文件存放的目录,默认为${basedir}/target,即项目根目录下的target -->  
<directory>${basedir}/target</directory> 

<!--必须跟命令行上的参数相同例如jar:jar,或者与某个阶段(phase)相同例如install、compile等 -->  
<defaultGoal>install</defaultGoal>   

<!--当filtering开关打开时,使用到的过滤器属性文件列表。 -->  
<filters>  
    <filter>../filter.properties</filter>  
</filters>   

<!--项目相关的所有资源路径列表,例如和项目相关的配置文件、属性文件,这些资源被包含在最终的打包文件里。 --> 
<resources>  
    <resource>见3</resource>
</resources>      

<!--使用的插件列表 -->
<plugins>  
    <plugin>...</plugin>
</plugins>       

<!--pluginManagement主要是为了统一管理插件,确保所有子POM使用的插件版本保持一致,类似dependencies和dependencyManagement,只是一个声明,一般用在父pom文件中 -->
<pluginManagement>  
    <plugins>...</plugins>  
</pluginManagement>  


3. resources说明
<resources>  
    <resource>  

        <!--描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。 -->  
        <!--举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven/messages。 -->  
        <!--然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 -->  
        <targetPath>resources</targetPath>  

        <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。 -->  
        <filtering>true</filtering>  

        <!--描述存放资源的目录,该路径相对POM路径 -->  
        <directory>src/main/resources</directory>  

        <!--包含的模式列表 -->  
        <includes>  
            <include>**/*.properties</include&g

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值