1. 繼承
TCSTAR7034
之前我們學習Maven的聚合機制遺留個問題,就是多個模塊的pom.xml文件的內容出現了冗余、重復的內容,解決這個問題其實使用Maven的繼承機制即可,就像Java的繼承一樣,父類就像一個模板,子類繼承自父類,那么有些通用的方法、變量都不必在子類中再重復聲明了,Maven的繼承機制類似,在一個父級別的Maven的pom文件中定義了相關的常量、依賴、插件等等配置后,實際項目模塊可以繼承此父項目的pom文件,重復的項不必顯示的再聲明一遍了,相當于父Maven項目就是個模板,等著其他子模塊去繼承。不過父Maven項目要高度抽象,高度提取公共的部分(交集)。筆者使用了先前的聚合項目模塊做的父模板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>
<groupId>com.liuyan.account</groupId>
<artifactId>MavenAccount-aggregator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<springversion>2.5.6</springversion>
<junitversion>2.5.6</junitversion>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springversion}</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>1.3.1b</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resource</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>buildSource</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<inherited>false</inherited>
<configuration>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>../MavenAccount-email</module>
<module>../MavenAccount-persist</module>
</modules>
</project>
posted on 2011-06-08 09:29
墻頭草 閱讀(1035)
評論(1) 編輯 收藏