maven pom.xml记录

Maven项目配置详解
本文详细介绍了Maven项目配置的各项内容,包括项目元数据、依赖管理、构建设置及环境配置等,适合初学者和进阶用户参考。
<project xmlns="http://maven.apache.org/POM/4.0.0" 
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                                http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <!-- 上面的信息的约束maven的写法-->                               
 
        <modelVersion>4.0.0</modelVersion>
        <!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。--> 

        <groupId>im.yuecai</groupId>
        <!--项目或者组织的唯一标志-->
        <artifactId>plan</artifactId>
        <!--项目的模块坐标-->
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
        <!--项目产生的构件类型或者说打包机制-->  
        <name>plan</name>
        <!--用户描述项目的名称-->
         <url>http://maven.apache.org</url>
         <!--开发团队网站-->
                
         <description>       
              项目的详细描述, Maven 产生的文档用。 
         </description>

         <properties>
            <plan.version>0.0.1-SNAPSHOT</plan.version>
            <framework.all.version>0.0.1-SNAPSHOT</framework.all.version>
            <mysql.version>5.1.6</mysql.version>
            <copyright.year>2014 </copyright.year>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <!--是为pom定义一些常量,在pom中的其它地方可以直接引用 -->          
         </properties>
 
         <modules>
          <!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
          <module>plan-model</module>
          <module>plan-dao</module>
          <module>plan-interfaces</module>
          <module>plan-services</module>
          <module>plan-app</module>
         </modules>
        
         <dependencies>
            <!--描述了项目相关的所有依赖 -->
            <dependency>
              <groupId>junit</groupId>
              <!--依赖的group ID-->
              <artifactId>junit</artifactId>
              <!--依赖的artifact ID-->
              <version>3.8.1</version>
              <!--依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。-->
              <scope>test</scope>
              <!--依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。 
                - compile :默认范围,用于编译   
                - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath   
                - runtime: 在执行时需要使用   
                - test:    用于test任务时使用   
                - system: 需要外在提供相应的元素。通过systemPath来取得   
                - systemPath: 仅用于范围为system。提供相应的路径   
                - optional:   当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用-->  
            </dependency>
          </dependencies>
           <distributionManagement>
           <!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。-->
              <repository>
              <!--部署项目产生的构件到远程仓库需要的信息-->
               <id>releases</id>
               <url>http://192.168.1.XXX:8081/nexus/content/repositories/releases</url>
              </repository>
              <snapshotRepository>
              <!--构件的快照部署的信息-->  
               <id>snapshots</id>
               <url>http://192.168.1.XXX:8081/nexus/content/repositories/snapshots</url>
              </snapshotRepository>
            </distributionManagement>
            <build>
            <!--构建项目需要的信息-->
              <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
               <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->
              <outputDirectory>${basedir}/target/classes</outputDirectory>
               <!--被编译过的应用程序class文件存放的目录。-->
              <resources>
              <!--描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。-->
               <resource>
               <!--描述了项目相关或测试相关的所有资源路径-->
                <directory>${basedir}/src/main/java</directory>
                <includes>
                <!--包含的模式列表-->
                 <include>**/*.xml</include>
                 <include>**/*.properties</include>
                </includes>
                <excludes>
                <!--排除的模式列表-->
                 <exclude>**/*.java</exclude>
                </excludes>
                <filtering>true</filtering>
                 <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->
               </resource>
              </resources>
              <plugins>
               <!--使用的插件列表 。-->
               <plugin>
               <!--plugin元素包含描述插件所需要的信息。-->
                <groupId>org.apache.maven.plugins</groupId>
                <!--插件在仓库里的group ID-->
                <artifactId>maven-compiler-plugin</artifactId>
                <!--插件在仓库里的artifact ID-->
                <version>2.3.2</version>
                <!--被使用的插件的版本(或版本范围)-->
                <configuration>
                <!--被使用的插件的配置-->
                 <forkMode>once</forkMode>
                 <argLine>-Dfile.encoding=UTF-8</argLine>
                 <source>1.6</source>
                 <target>1.6</target>
                 <encoding>UTF-8</encoding>
                 <verbose>true</verbose>
                 <fork>true</fork>
                 <executable>${JAVA_HOME}/bin/javac</executable>
                </configuration>
               </plugin>
               <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1.2</version>
                <configuration>
                 <attach>true</attach>
                </configuration>
                <executions>
                <!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->
                 <execution>
                  <!--execution元素包含了插件执行需要的信息-->
                  <phase>compile</phase>
                  <!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->
                  <goals>
                  <!--配置的执行目标-->
                   <goal>jar</goal>
                  </goals>
                 </execution>
                </executions>
               </plugin>
              </plugins>
             </build>
</project>

 子pom.xml文件相关信息

 <project xmlns="http://maven.apache.org/POM/4.0.0" 

                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 

                                http://maven.apache.org/xsd/maven-4.0.0.xsd">

             <!-- 上面的信息的约束maven的写法--> 
             <modelVersion>4.0.0</modelVersion>
             <parent>
             <!--父项目的坐标。-->
              <groupId>im.yuecai</groupId>
              <!--被继承的父项目的唯一标识符-->
              <artifactId>plan</artifactId>
              <version>0.0.1-SNAPSHOT</version>
             </parent>
             <artifactId>plan-app</artifactId>
             <packaging>war</packaging>
             <name>plan-app</name>
              <dependencies>
              <!--该元素描述了项目相关的所有依赖。-->
              <dependency>
               <groupId>im.yuecai</groupId>
               <artifactId>plan-services</artifactId>
               <version>${project.version}</version>
              </dependency>
              <dependency>
               <groupId>im.yuecai</groupId>
               <artifactId>common-web</artifactId>
               <version>0.0.1-SNAPSHOT</version>
              </dependency>
              <dependency>
               <groupId>org.springframework</groupId>
               <artifactId>spring-oxm</artifactId>
               <version>3.1.2.RELEASE</version>
              </dependency>                   
              <dependency>
               <groupId>cn.bidlink.monitor</groupId>
                <!--项目依赖的groupId-->
               <artifactId>monitor-client</artifactId>
               <!--项目依赖的artifactId-->
               <version>0.0.3-SNAPSHOT</version>
                <!--项目依赖的版本-->
               <exclusions>
               <!--当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题--> 
                <exclusion>
                   <groupId>junit</groupId>
                   <artifactId>junit</artifactId>
                </exclusion>
               </exclusions>
              </dependency> 
                 
             </dependencies>
             <build>
              <!--构建项目需要的信息-->
              <filters>
                <!--当filtering开关打开时,使用到的过滤器属性文件列表-->
               <filter>src/main/resources/filters/filter-${env}.properties</filter>
              </filters>
              <resources>
              <!--描述了项目相关的所有资源路径列表-->
               <resource>
               <!--这个元素描述了项目相关或测试相关的所有资源路径-->
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->
                <excludes>
                <!--排除的模式列表,例如**/*.xml-->
                 <exclude>filters/**</exclude>
                </excludes>
               </resource>
              </resources>
             </build>
             <!-- 各种环境的配置信息 -->
             <profiles>
              <!-- 开发环境的配置信息 -->
              <profile>
               <id>dev</id>
               <properties>
                <env>dev</env>
               </properties>
               <!-- 默认是本地开发环境 -->
               <activation>
                <activeByDefault>true</activeByDefault>
               </activation>
              </profile>
              <profile>
               <id>test</id>
               <properties>
                <env>test</env>
               </properties>
              </profile>
              <profile>
               <id>pub</id>
               <properties>
                <env>pub</env>
               </properties>
              </profile>
             </profiles>
            </project>

 

 

转载于:https://my.oschina.net/u/260244/blog/310841

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值