父pom配置:
<packaging>pom</packaging>
在父pom中配置依賴管理和插件管理
<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>java
<groupId>cxxcode.maven</groupId>
<artifactId>account-parent</artifactId>
<packaging>pom</packaging>
<version>0.0.1</version>
<name>Account Parent</name>
<url>http://maven.apache.org</url>spring
<properties>
<spring-version>2.5.6</spring-version>
<junit-version>4.7</junit-version>
<mail-version>1.4.1</mail-version>
<greenmail-version>1.3.1b</greenmail-version>
<dom4j-version>1.6.1</dom4j-version>
<surefire-version>2.5</surefire-version>
</properties>apache
<!--
依賴管理dependencyManagement
假設不使用依賴管理。子pom會繼承父pom中配置的所有依賴,子pom中僅僅需配置本身特需的依賴便可了,
這樣儘管簡化了子pom的配置。但是強制性給子pom加上多餘的依賴。
使用依賴管理,子pom中要配置本身需要的依賴。假設這些依賴在父pom中配置了,
子pom僅僅需指定這些依賴的groupId和artifactId
依賴管理的導入
將proj-A中的依賴管理導入此pom的依賴管理中
<scope>import</scope>僅僅用在依賴管理配置中。且<type>pom</type>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>cxxcode.mave</groupId>
<artifactId>proj-A</artifactId>
<version>0.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${mail-version}</version>
</dependency>xcode
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>${dom4j-version}</version>
</dependency>dom
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>${greenmail-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- 插件管理pluginManagement -->
<pluginManagement>
<plugins>
<!-- 編譯插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<fork>true</fork><!-- true贊成改動jdk編碼版本號 -->
<encoding>UTF-8</encoding>
<!-- 跳過測試編譯
<skip>false</skip> -->
</configuration>
</plugin>
<!-- 生成源代碼jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 複製主資源文件到主輸出文件夾 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 測試插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire-version}</version>
<configuration>
<!-- 跳過測試
<skip>true</skip> -->
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
==================================maven
子pomui
<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>cxxcode.maven</groupId>
<artifactId>account-email</artifactId>
<packaging>jar</packaging>
<version>0.0.1</version>
<name>Account Email</name>
-->
<!--
parent
繼承父pom
子pom的groupId、version、依賴等信息繼承父pom
relativePath 父pom的位置。默認../pom.xml
可繼承的pom元素
groupId 項目組Id
version 項目版本號
description 項目描寫敘述
organization 項目的組織信息
inceptionYear 項目的建立年份
url 項目的url
developers 項目的開發人員
contributors 項目的貢獻者
distributionManagement 項目的部署配置
issueManagement 項目的缺陷跟蹤系統信息
ciManagement 項目的持續繼承系統信息
scm 項目的版本號控制系統信息
mailingLists 項目的郵件列表信息
properties 本身定義的maven屬性
dependencies 項目的依賴配置
dependencyManagement 項目的依賴管理配置
repositories 項目的倉庫配置
build 包含項目的源代碼文件夾配置,輸出文件夾配置、插件配置、插件管理配置等
reporting 包含項目的報告輸出文件夾配置、報告插件配置等
-->
<artifactId>account-email</artifactId>
<packaging>jar</packaging>
<name>Account Email</name>
<parent>
<groupId>cxxcode.maven</groupId>
<artifactId>account-parent</artifactId>
<version>0.0.1</version>
<relativePath>../CXXMaven_AccountParent/pom.xml</relativePath>
</parent>編碼
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>url
</dependencies>
<build>
<plugins>
<!-- 編譯插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>插件
<!-- 生成可執行的jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>
com.cxx.maven.App
</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<!-- 生成源代碼jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>