zoukankan      html  css  js  c++  java
  • maven 的几个重要的配置文件:super pom & 生命周期默认绑定的配置文件

    这几个配置文件都在 maven 的 安装 目录的 lib 目录中

    1. super pom.

    在 maven-model-builder-{version}.jar 包的

    org/apache/maven/model 中的 pom-4.0.0.xml 这个文件

    所有的pom 文件都继承该 pom 文件。摘抄如下:

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 
      3 <!--
      4 Licensed to the Apache Software Foundation (ASF) under one
      5 or more contributor license agreements.  See the NOTICE file
      6 distributed with this work for additional information
      7 regarding copyright ownership.  The ASF licenses this file
      8 to you under the Apache License, Version 2.0 (the
      9 "License"); you may not use this file except in compliance
     10 with the License.  You may obtain a copy of the License at
     11 
     12     http://www.apache.org/licenses/LICENSE-2.0
     13 
     14 Unless required by applicable law or agreed to in writing,
     15 software distributed under the License is distributed on an
     16 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     17 KIND, either express or implied.  See the License for the
     18 specific language governing permissions and limitations
     19 under the License.
     20 -->
     21 
     22 <!-- START SNIPPET: superpom -->
     23 <project>
     24   <modelVersion>4.0.0</modelVersion>
     25 
     26   <repositories>
     27     <repository>
     28       <id>central</id>
     29       <name>Central Repository</name>
     30       <url>https://repo.maven.apache.org/maven2</url>
     31       <layout>default</layout>
     32       <snapshots>
     33         <enabled>false</enabled>
     34       </snapshots>
     35     </repository>
     36   </repositories>
     37 
     38   <pluginRepositories>
     39     <pluginRepository>
     40       <id>central</id>
     41       <name>Central Repository</name>
     42       <url>https://repo.maven.apache.org/maven2</url>
     43       <layout>default</layout>
     44       <snapshots>
     45         <enabled>false</enabled>
     46       </snapshots>
     47       <releases>
     48         <updatePolicy>never</updatePolicy>
     49       </releases>
     50     </pluginRepository>
     51   </pluginRepositories>
     52 
     53   <build>
     54     <directory>${project.basedir}/target</directory>
     55     <outputDirectory>${project.build.directory}/classes</outputDirectory>
     56     <finalName>${project.artifactId}-${project.version}</finalName>
     57     <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
     58     <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
     59     <scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
     60     <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
     61     <resources>
     62       <resource>
     63         <directory>${project.basedir}/src/main/resources</directory>
     64       </resource>
     65     </resources>
     66     <testResources>
     67       <testResource>
     68         <directory>${project.basedir}/src/test/resources</directory>
     69       </testResource>
     70     </testResources>
     71     <pluginManagement>
     72       <!-- NOTE: These plugins will be removed from future versions of the super POM -->
     73       <!-- They are kept for the moment as they are very unlikely to conflict with lifecycle mappings (MNG-4453) -->
     74       <plugins>
     75         <plugin>
     76           <artifactId>maven-antrun-plugin</artifactId>
     77           <version>1.3</version>
     78         </plugin>
     79         <plugin>
     80           <artifactId>maven-assembly-plugin</artifactId>
     81           <version>2.2-beta-5</version>
     82         </plugin>
     83         <plugin>
     84           <artifactId>maven-dependency-plugin</artifactId>
     85           <version>2.8</version>
     86         </plugin>
     87         <plugin>
     88           <artifactId>maven-release-plugin</artifactId>
     89           <version>2.3.2</version>
     90         </plugin>
     91       </plugins>
     92     </pluginManagement>
     93   </build>
     94 
     95   <reporting>
     96     <outputDirectory>${project.build.directory}/site</outputDirectory>
     97   </reporting>
     98 
     99   <profiles>
    100     <!-- NOTE: The release profile will be removed from future versions of the super POM -->
    101     <profile>
    102       <id>release-profile</id>
    103 
    104       <activation>
    105         <property>
    106           <name>performRelease</name>
    107           <value>true</value>
    108         </property>
    109       </activation>
    110 
    111       <build>
    112         <plugins>
    113           <plugin>
    114             <inherited>true</inherited>
    115             <artifactId>maven-source-plugin</artifactId>
    116             <executions>
    117               <execution>
    118                 <id>attach-sources</id>
    119                 <goals>
    120                   <goal>jar</goal>
    121                 </goals>
    122               </execution>
    123             </executions>
    124           </plugin>
    125           <plugin>
    126             <inherited>true</inherited>
    127             <artifactId>maven-javadoc-plugin</artifactId>
    128             <executions>
    129               <execution>
    130                 <id>attach-javadocs</id>
    131                 <goals>
    132                   <goal>jar</goal>
    133                 </goals>
    134               </execution>
    135             </executions>
    136           </plugin>
    137           <plugin>
    138             <inherited>true</inherited>
    139             <artifactId>maven-deploy-plugin</artifactId>
    140             <configuration>
    141               <updateReleaseInfo>true</updateReleaseInfo>
    142             </configuration>
    143           </plugin>
    144         </plugins>
    145       </build>
    146     </profile>
    147   </profiles>
    148 
    149 </project>
    150 <!-- END SNIPPET: superpom -->

    2. 生命周期绑定文件
    在 maven-core-{version}.jar 包中

    META-INF/plexus/components.xml 中。重要的几个绑定:

    2.1  packing 类型 为 war 时的默认绑定

     1     
     2     <component>
     3       <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
     4       <role-hint>war</role-hint>
     5       <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
     6       <configuration>
     7         <lifecycles>
     8           <lifecycle>
     9             <id>default</id>
    10             
    11             <phases>
    12               <process-resources>
    13                 org.apache.maven.plugins:maven-resources-plugin:2.6:resources
    14               </process-resources>
    15               <compile>
    16                 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
    17               </compile>
    18               <process-test-resources>
    19                 org.apache.maven.plugins:maven-resources-plugin:2.6:testResources
    20               </process-test-resources>
    21               <test-compile>
    22                 org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
    23               </test-compile>
    24               <test>
    25                 org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
    26               </test>
    27               <package>
    28                 org.apache.maven.plugins:maven-war-plugin:2.2:war
    29               </package>
    30               <install>
    31                 org.apache.maven.plugins:maven-install-plugin:2.4:install
    32               </install>
    33               <deploy>
    34                 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
    35               </deploy>
    36             </phases>
    37             
    38           </lifecycle>
    39         </lifecycles>
    40       </configuration>
    41     </component>

    2.2 packing 类型 为 jar 时的默认绑定

     1     <component>
     2       <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
     3       <role-hint>jar</role-hint>
     4       <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
     5       <configuration>
     6         <lifecycles>
     7           <lifecycle>
     8             <id>default</id>
     9             
    10             <phases>
    11               <process-resources>
    12                 org.apache.maven.plugins:maven-resources-plugin:2.6:resources
    13               </process-resources>
    14               <compile>
    15                 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
    16               </compile>
    17               <process-test-resources>
    18                 org.apache.maven.plugins:maven-resources-plugin:2.6:testResources
    19               </process-test-resources>
    20               <test-compile>
    21                 org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
    22               </test-compile>
    23               <test>
    24                 org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
    25               </test>
    26               <package>
    27                 org.apache.maven.plugins:maven-jar-plugin:2.4:jar
    28               </package>
    29               <install>
    30                 org.apache.maven.plugins:maven-install-plugin:2.4:install
    31               </install>
    32               <deploy>
    33                 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
    34               </deploy>
    35             </phases>
    36             
    37           </lifecycle>
    38         </lifecycles>
    39       </configuration>
    40     </component>

    2.3 packing 类型 为 pom 时的默认绑定

     1     <component>
     2       <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
     3       <role-hint>pom</role-hint>
     4       <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
     5       <configuration>
     6         <lifecycles>
     7           <lifecycle>
     8             <id>default</id>
     9             
    10             <phases>
    11               <install>
    12                 org.apache.maven.plugins:maven-install-plugin:2.4:install
    13               </install>
    14               <deploy>
    15                 org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
    16               </deploy>
    17             </phases>
    18             
    19           </lifecycle>
    20         </lifecycles>
    21       </configuration>
    22     </component>

    2.4 maven 中的三大生命周期

     1   <component>
     2       <role>org.apache.maven.lifecycle.Lifecycle</role>
     3       <implementation>org.apache.maven.lifecycle.Lifecycle</implementation>
     4       <role-hint>default</role-hint>
     5       <configuration>
     6         <id>default</id>
     7         
     8         <phases>
     9           <phase>validate</phase>
    10           <phase>initialize</phase>
    11           <phase>generate-sources</phase>
    12           <phase>process-sources</phase>
    13           <phase>generate-resources</phase>
    14           <phase>process-resources</phase>
    15           <phase>compile</phase>
    16           <phase>process-classes</phase>
    17           <phase>generate-test-sources</phase>
    18           <phase>process-test-sources</phase>
    19           <phase>generate-test-resources</phase>
    20           <phase>process-test-resources</phase>
    21           <phase>test-compile</phase>
    22           <phase>process-test-classes</phase>
    23           <phase>test</phase>
    24           <phase>prepare-package</phase>
    25           <phase>package</phase>
    26           <phase>pre-integration-test</phase>
    27           <phase>integration-test</phase>
    28           <phase>post-integration-test</phase>
    29           <phase>verify</phase>
    30           <phase>install</phase>
    31           <phase>deploy</phase>
    32         </phases>
    33         
    34       </configuration>
    35     </component><component>
    36       <role>org.apache.maven.lifecycle.Lifecycle</role>
    37       <implementation>org.apache.maven.lifecycle.Lifecycle</implementation>
    38       <role-hint>clean</role-hint>
    39       <configuration>
    40         <id>clean</id>
    41         
    42         <phases>
    43           <phase>pre-clean</phase>
    44           <phase>clean</phase>
    45           <phase>post-clean</phase>
    46         </phases>
    47         <default-phases>
    48           <clean>
    49             org.apache.maven.plugins:maven-clean-plugin:2.5:clean
    50           </clean>
    51         </default-phases>
    52         
    53       </configuration>
    54     </component><component>
    55       <role>org.apache.maven.lifecycle.Lifecycle</role>
    56       <implementation>org.apache.maven.lifecycle.Lifecycle</implementation>
    57       <role-hint>site</role-hint>
    58       <configuration>
    59         <id>site</id>
    60         
    61         <phases>
    62           <phase>pre-site</phase>
    63           <phase>site</phase>
    64           <phase>post-site</phase>
    65           <phase>site-deploy</phase>
    66         </phases>
    67         <default-phases>
    68           <site>
    69             org.apache.maven.plugins:maven-site-plugin:3.3:site
    70           </site>
    71           <site-deploy>
    72             org.apache.maven.plugins:maven-site-plugin:3.3:deploy
    73           </site-deploy>
    74         </default-phases>
    75         
    76       </configuration>
    77     </component>
  • 相关阅读:
    SQL索引是什么?索引的作用是什么?索引的优点是什么?索引的缺点是什么?索引的分类?什么情况下该创建索引?
    Eclipse中JSP生成的class文件去了哪里?
    Jboss 遇到的问题 :org.jboss.tools.vpe.xulrunner.XulRunnerBundleNotFoundException: Bundle org.mozilla.xulrunner.win32.win32.x86_64 is not found.
    Java框架之Hibernate实战篇
    《从0开始学架构》学习笔记(一)
    JavaWeb——Servlet(详细笔记)
    用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
    Jetty 安装、启动与项目部署
    快速排序相关(学习笔记)
    Java中对象的比较(学习笔记)
  • 原文地址:https://www.cnblogs.com/a-ray-of-sunshine/p/5011111.html
Copyright © 2011-2022 走看看