`

Maven实战(七)—— Maven的超级POM

 
阅读更多

先来看一下这个超级pom.xml的定义:

<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>${project.basedir}/target</directory>

    <outputDirectory>${project.build.directory}/classes</outputDirectory>

    <finalName>${project.artifactId}-${project.version}</finalName>

    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>

    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>

    <!-- TODO: MNG-3731 maven-plugin-tools-api < 2.4.4 expect this to be relative... -->

    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>

    <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>

    <resources>

      <resource>

        <directory>${project.basedir}/src/main/resources</directory>

      </resource>

    </resources>

    <testResources>

      <testResource>

        <directory>${project.basedir}/src/test/resources</directory>

      </testResource>

    </testResources>

   <pluginManagement>

       <plugins>

         <plugin>

           <artifactId>maven-antrun-plugin</artifactId>

           <version>1.3</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.4</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.5</version>

         </plugin>

         <plugin>

           <artifactId>maven-plugin-plugin</artifactId>

           <version>2.4.3</version>

         </plugin>

         <plugin>

           <artifactId>maven-rar-plugin</artifactId>

           <version>2.2</version>

         </plugin>       

         <plugin>               

           <artifactId>maven-release-plugin</artifactId>

           <version>2.0-beta-8</version>

         </plugin>

         <plugin>                

           <artifactId>maven-resources-plugin</artifactId>

           <version>2.3</version>

         </plugin>

         <plugin>

           <artifactId>maven-site-plugin</artifactId>

           <version>2.0-beta-7</version>

         </plugin>

         <plugin>

           <artifactId>maven-source-plugin</artifactId>

           <version>2.0.4</version>

         </plugin>        

         <plugin>

            <artifactId>maven-surefire-plugin</artifactId>

            <version>2.4.3</version>

         </plugin>

         <plugin>

           <artifactId>maven-war-plugin</artifactId>

           <version>2.1-alpha-2</version>

         </plugin>

       </plugins>

     </pluginManagement>

  </build>

 

  <reporting>

    <outputDirectory>${project.build.directory}/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>

 

pom.xml会完全继承父pom.xml中所有的元素,而且对于相同的元素,一般子pom.xml中的会覆盖父pom.xml中的元素,但是有几个特殊的元素它们会进行合并而不是覆盖。这些特殊的元素是:

Ø  dependencies

Ø  developers

Ø  contributors

Ø  plugin列表,包括plugin下面的reports

Ø  resources

分享到:
评论

相关推荐

    Maven《实战》许晓斌完整版包含源码

    **Maven实战——许晓斌完整版** Maven是一个强大的项目管理和构建工具,广泛应用于Java开发领域。由Apache Software Foundation维护,它简化了构建过程,通过一个统一的配置方式管理项目的构建、报告和依赖关系。...

    maven 实战 in action 中文版 3.3

    - **Maven实战——入门篇**:这本书的入门部分,引导读者快速上手Maven,理解基本概念和操作。 - **MAVEN使用最佳实践.doc**:可能包含更具体的项目构建、部署和团队协作的最佳实践指导。 以上只是对Maven基础...

    maven 实战(还没有看)

    **Maven实战——深入理解与应用** Maven是一款强大的Java项目管理工具,它通过XML格式的配置文件,统一管理项目的构建、报告以及依赖关系。在本文中,我们将深入探讨Maven实战中的关键概念,包括安装配置、项目构建...

    Maven3实战笔记08Maven反应堆

    ### Maven3实战笔记08——Maven反应堆:深度解析与实战应用 #### Maven反应堆的概念与作用 在深入探讨Maven反应堆之前,我们首先需要理解Maven项目是如何组织和构建的。Maven是一种自动化构建工具,它通过定义项目...

    Maven3实战笔记06聚合

    描述:“Maven3实战笔记06——聚合的介绍。” 基于给定的信息,我们可以深入探讨Maven中的“聚合”概念及其在项目管理中的应用。 ### Maven聚合:理解与实践 #### 一、聚合的概念 在Maven的世界里,“聚合”...

    Maven3实战笔记07继承

    描述:“Maven3实战笔记07——继承的介绍。” Maven作为Java项目管理工具,其强大的功能之一便是支持项目的继承特性,这一特性在构建大型、复杂的多模块项目时显得尤为重要。通过继承机制,子项目可以复用父项目中...

    SSM实战项目——Java高并发秒杀API源码

    4. **Maven项目结构**:pom.xml文件是Maven项目的配置文件,定义了项目的依赖关系、构建过程等。通过Maven,开发者可以方便地管理项目依赖,统一构建过程,提高开发效率。 5. **高并发处理**:在秒杀API的设计中,...

    javaweb课程设计:基于SSM的实战项目——图书管理系统.zip

    《基于SSM的实战项目——图书管理系统》是一个典型的JavaWeb应用程序,主要采用了Spring、SpringMVC和MyBatis三大框架,旨在提供一个完整的图书管理解决方案。这个项目源码适合用作学习材料,无论是毕业设计还是课程...

    Maven资料打包大集合

    Maven3培训教程.pdf Maven实战.pdf MavenQuickReferenceCard.pdf MavenTheDefinitiveGuide.pdf Maven学习.doc 持续集成之路——搭建Maven私服.doc 利用m2eclipse生成WTP项目.pdf

    Maven权威指南,学习参考手册

    Maven实战部分涵盖了从创建简单项目到定制多模块企业级项目的全过程。以创建一个简单的Maven项目为例,首先需定义项目的目标和依赖,然后编写项目对象模型(POM)文件,其中包含了项目的基本信息、构建配置和依赖...

    Maven deploy到 nexus(csdn)————程序.pdf

    - **Maven**:Apache Maven是一款基于项目对象模型(POM)的软件项目管理和理解工具。通过一系列标准生命周期构建项目,简化了项目的构建、依赖管理和文档生成等工作。 - **Nexus**:Nexus Repository Manager是一个...

    【Java实战教程】10. 使用Maven引入相关jar包.zip

    POM是一个XML文件,包含了项目的基本信息,如项目名称、版本、开发者信息,以及最重要的——项目依赖。通过定义POM,Maven可以理解项目结构,并自动执行构建过程。 **添加依赖** 在POM.xml文件中,我们可以添加`...

    Maven学习资源打包汇总

    《Maven实战》是一本实践导向的书籍,涵盖了Maven在实际项目中的应用,包括设置环境变量、配置构建服务器、集成持续集成工具如Jenkins,以及使用Maven进行部署。此外,它还介绍了一些高级话题,如使用Maven进行敏捷...

    eclipse使用maven整理文档.rar_captured7ne_eclipse mavenhelper_maven

    【标签】"captured7ne eclipse_mavenhelper maven"暗示了这个压缩包可能包含了Eclipse的一个插件——Maven Helper,这是一个Eclipse IDE的辅助工具,它可以帮助用户更好地理解和管理Maven项目中的依赖关系,例如显示...

    Java开发中的Maven打包指南:POM、JAR与WAR解析及实战示例(包含详细的完整的程序和数据)

    本文探讨了Maven在Java项目中的重要角色——通过详细介绍POM、JAR以及WAR的含义及应用场景来引导读者理解和区分这些常用的概念。进一步地,在一个完整的示例项目的基础上,展示了具体的代码细节以及从源码编辑直至...

    Maven培训 资料

    - `Maven实战.pdf`可能是一本关于Maven实际应用的书籍,涵盖了从基础到高级的各种用法,是学习Maven的好资料。 - `Maven3+安装和配置.ppt`可能是一个幻灯片教程,详细介绍了Maven 3.x版本的安装步骤和配置方法。 -...

    maven-definitive-guide

    #### 三、Maven实战案例 **3.1 简单Maven项目介绍** 通过创建一个简单的Maven项目来了解Maven的核心概念和技术。 **3.1.1 下载示例章节** 可以通过下载示例项目来快速实践本章中的示例。 **3.2 创建简单项目** ...

    JAVA权限管理Maven项目

    【JAVA权限管理Maven项目】是一个使用Java三大框架——Spring、SpringMVC和MyBatis构建的实战项目,旨在教授如何在Java环境下实现细粒度的权限控制和管理。Maven作为项目构建工具,帮助开发者有效地管理和组织项目的...

Global site tag (gtag.js) - Google Analytics