`

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实战中的关键概念,包括安装配置、项目构建...

    Maven实战.pdf

    《Maven实战》一书是针对Java开发人员深入学习和应用Maven构建工具的重要参考资料。Maven是一个项目管理和综合工具,它简化了构建、管理和部署Java项目的过程,通过标准化项目结构和自动化构建生命周期来实现这一...

    Maven实战 (Maven In Action)

    ### Maven实战 (Maven In Action) —— 关键知识点概览 #### 1. Maven简介与背景 **Maven** 是一款广泛应用于Java项目中的自动化构建工具,它以一种项目对象模型(POM)来管理项目的构建、报告和文档。通过简化项目...

    Maven实战.docx

    ### Maven实战知识点详解 #### 一、Maven简介与历史背景 Maven 是一个项目管理和理解工具,最初由 Sonatype 开发,后被 Apache 软件基金会接收并成为其顶级项目之一。它通过一系列标准的过程来管理项目的构建、报告...

    Maven3实战笔记08Maven反应堆

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

    Maven实战(中文版)

    ### Maven实战(中文版)——关键知识点解析 #### 一、Maven简介 Maven是一款由Apache软件基金会提供的项目管理和构建工具,它基于项目对象模型(Project Object Model, POM),通过一小段描述信息来管理项目的构建...

    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的含义及应用场景来引导读者理解和区分这些常用的概念。进一步地,在一个完整的示例项目的基础上,展示了具体的代码细节以及从源码编辑直至...

Global site tag (gtag.js) - Google Analytics