maven的pom.xml文件配置(2)

一、什么是POM
Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。

一个完整的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/maven-v4_0_0.xsd">  
      <modelVersion>4.0.0</modelVersion>  
      <!– The Basics –>  
      <groupId></groupId>  
      <artifactId></artifactId>  
      <version></version>  
      <packaging></packaging>  
      <dependencies></dependencies>  
      <parent></parent>  
      <dependencyManagement></dependencyManagement>  
      <modules></modules>  
      <properties></properties>  
      <!– Build Settings –>  
      <build></build>  
      <reporting></reporting>  
      <!– More Project Information –>  
      <name></name>  
      <description></description>  
      <url></url>  
      <inceptionYear></inceptionYear>  
      <licenses></licenses>  
      <organization></organization>  
      <developers></developers>  
      <contributors></contributors>  
      <!– Environment Settings –>  
      <issueManagement></issueManagement>  
      <ciManagement></ciManagement>  
      <mailingLists></mailingLists>  
      <scm></scm>  
      <prerequisites></prerequisites>  
      <repositories></repositories>  
      <pluginRepositories></pluginRepositories>  
      <distributionManagement></distributionManagement>  
      <profiles></profiles>  
    </project>  

二、基本设置

1、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/maven-v4_0_0.xsd">  
      <modelVersion>4.0.0</modelVersion>  
      <groupId>org.codehaus.mojo</groupId>  
      <artifactId>my-project</artifactId>  
      <version>1.0</version>  
      <packaging>war</packaging>  
    </project>  

groupId:组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录。
artifactId:项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录。
version:版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录。
packaging:打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par

2、POM之间的关系
主要用于POM文件的复用。
a)依赖关系:依赖关系列表(dependency list)是POM的重要部分

<dependencies>  
  <dependency>  
    <groupId>junit</groupId>  
    <artifactId>junit</artifactId>  
    <version>4.0</version>  
    <scope>test</scope>  
  </dependency></dependencies>  

在这种机制下,maven还提供了一个类似java.lang.Object的顶级父pom.xml文件:


[html] view plain copy

    <project>  
      <modelVersion>4.0.0</modelVersion>  
      <name>Maven Default Project</name>  
      <repositories>  
        <repository>  
          <id>central</id>  
          <name>Maven Repository Switchboard</name>  
          <layout>default</layout>  
          <url>http://repo1.maven.org/maven2</url>  
          <snapshots>  
            <enabled>false</enabled>  
          </snapshots>  
        </repository>  
      </repositories>  
      <pluginRepositories>  
        <pluginRepository>  
          <id>central</id>  
          <name>Maven Plugin Repository</name>  
          <url>http://repo1.maven.org/maven2</url>  
          <layout>default</layout>  
          <snapshots>  
            <enabled>false</enabled>  
          </snapshots>  
          <releases>  
            <updatePolicy>never</updatePolicy>  
          </releases>  
        </pluginRepository>  
      </pluginRepositories>  
      <build>  
        <directory>target</directory>  
        <outputDirectory>target/classes</outputDirectory>  
        <finalName>${project.artifactId}-${project.version}</finalName>  
        <testOutputDirectory>target/test-classes</testOutputDirectory>  
        <sourceDirectory>src/main/java</sourceDirectory>  
        <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>  
        <testSourceDirectory>src/test/java</testSourceDirectory>  
        <resources>  
          <resource>  
            <directory>src/main/resources</directory>  
          </resource>  
        </resources>  
        <testResources>  
          <testResource>  
            <directory>src/test/resources</directory>  
          </testResource>  
        </testResources>  
        <pluginManagement>  
           <plugins>  
             <plugin>  
               <artifactId>maven-antrun-plugin</artifactId>  
               <version>1.1</version>  
             </plugin>        
             <plugin>  
               <artifactId>maven-assembly-plugin</artifactId>  
               <version>2.2-beta-2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-clean-plugin</artifactId>  
               <version>2.2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-compiler-plugin</artifactId>  
               <version>2.0.2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-dependency-plugin</artifactId>  
               <version>2.0</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-deploy-plugin</artifactId>  
               <version>2.3</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-ear-plugin</artifactId>  
               <version>2.3.1</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-ejb-plugin</artifactId>  
               <version>2.1</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-install-plugin</artifactId>  
               <version>2.2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-jar-plugin</artifactId>  
               <version>2.2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-javadoc-plugin</artifactId>  
               <version>2.4</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-plugin-plugin</artifactId>  
               <version>2.4.1</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-rar-plugin</artifactId>  
               <version>2.2</version>  
             </plugin>  
             <plugin>                 
               <artifactId>maven-release-plugin</artifactId>  
               <version>2.0-beta-7</version>  
             </plugin>  
             <plugin>                 
               <artifactId>maven-resources-plugin</artifactId>  
               <version>2.2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-site-plugin</artifactId>  
               <version>2.0-beta-6</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-source-plugin</artifactId>  
               <version>2.0.4</version>  
             </plugin>           
             <plugin>  
                <artifactId>maven-surefire-plugin</artifactId>  
                <version>2.4.2</version>  
             </plugin>  
             <plugin>  
               <artifactId>maven-war-plugin</artifactId>  
               <version>2.1-alpha-1</version>  
             </plugin>  
           </plugins>  
         </pluginManagement>  
      </build>  
      <reporting>  
        <outputDirectory>target/site</outputDirectory>  
      </reporting>  
      <profiles>  
        <profile>  
          <id>release-profile</id>  
          <activation>  
            <property>  
              <name>performRelease</name>  
              <value>true</value>  
            </property>  
          </activation>  
          <build>  
            <plugins>  
              <plugin>  
                <inherited>true</inherited>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-source-plugin</artifactId>  
                <executions>  
                  <execution>  
                    <id>attach-sources</id>  
                    <goals>  
                      <goal>jar</goal>  
                    </goals>  
                  </execution>  
                </executions>  
              </plugin>  
              <plugin>  
                <inherited>true</inherited>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-javadoc-plugin</artifactId>  
                <executions>  
                  <execution>  
                    <id>attach-javadocs</id>  
                    <goals>  
                      <goal>jar</goal>  
                    </goals>  
                  </execution>  
                </executions>  
              </plugin>  
              <plugin>  
                <inherited>true</inherited>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-deploy-plugin</artifactId>  
                <configuration>  
                  <updateReleaseInfo>true</updateReleaseInfo>  
                </configuration>  
              </plugin>  
            </plugins>  
          </build>  
        </profile>  
      </profiles>  
    </project>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值