最新版已同步至 http://yywang.info/2014/05/31/maven-install-and-create-project/
maven是一個比較流行的項目管理工具,在最近參與的項目中,也使用了maven,本文主要對在項目中的使用做一個總結,主要涉及maven的安裝於配置、maven創建多模塊項目。
1、maven安裝與配置
maven的安裝與配置非常簡單,具體步驟如下:
1、首先到http://maven.apache.org/download.cgi下載maven的包,可以選擇下載:apache-maven-3.2.1-bin.zip。
2、解壓下載的文件到電腦硬盤的某個目錄,比如D:\Program Files\
3、然后在環境變量中配置MAVEN_HOME=D:\Program Files\apache-maven-3.2.1-bin
4、在path中添加%MAVEN_HOME%\bin;
完成以上步驟,在運行 cmd 中 輸入 mvn -version出現如下:

安裝成功。
如果需要指定本地倉庫的位置進入安裝目錄,config打開setting.xml設置
<localRepository>D:\Repositories\Maven</localRepository>
注意:在使用ecplise時注意配置Windows->Perferences->User Settings 中User Settings選擇以上的setting.xml
maven的安裝於配置已經完成了,需要了解更多的maven基礎資料可以訪問如下:
http://maven.apache.org/guides/index.html
http://maven.apache.org/pom.html
2、maven創建多模塊項目
在開發web項目時,一般分為domain(領域對象)、persist(持久化)、service(業務)、web(web交互)四個模塊。在有的項目中還按照不同的業務進行划分幾個模塊,每個模塊包含這幾個模塊。
使用maven創建多模塊項目步驟如下(以一個blogs為名字的項目為例):
1、創建blogs-root,用於各個模塊集成。
(1)、進入命令行,輸入如下:
mvn archetype:create -DgroupId=org.yywang -DartifactId=blogs-root -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveModel=false
在當前目錄下,創建了一個blogs-root的目錄,進入blogs-root有兩個文件,src、pom.xml文件。
刪除src文件。
(2)、修改pom文件
修改pom文件中的 <packaging>jar</packaging>為 <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.yywang</groupId> <artifactId>blogs-root</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>blogs-root</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
2、創建blogs-domain,領域模型模塊
(1)、進入blogs-root,進入命令行,輸入
mvn archetype:create -DgroupId=org.yywang -DartifactId=blogs-domain -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveModel=false
在blogs-root目錄下創建了blogs-domain目錄。
在blogs-root目錄下pom文件中增加了一個模塊
<modules> <module>blogs-domain</module> </modules>
(2)、修改blogs-domain下的pom文件
刪除 <groupId>org.yywang</groupId>和<version>1.0-SNAPSHOT</version>,添加<packaging>jar</packaging>。
修改后的pom文件如下:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.yywang</groupId> <artifactId>blogs-root</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>blogs-domain</artifactId> <packaging>jar</packaging> <name>blogs-domain</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
3、創建blogs-persist,持久化模塊
(1)、在blogs-root目錄,進入命令行,輸入
mvn archetype:create -DgroupId=org.yywang -DartifactId=blogs-persist -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveModel=false
在blogs-root目錄下,增加了blogs-persist目錄。
在blogs-root目錄下的pom文件,modules節點下多了<module>blogs-persist</module>
(2)、修改blogs-persist目錄下的pom文件增加blogs-domain的依賴,修改為如下:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.yywang</groupId> <artifactId>blogs-root</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>blogs-persist</artifactId> <packaging>jar</packaging> <name>blogs-persist</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.yywang</groupId> <artifactId>blogs-domain</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
3、創建blogs-service,業務模塊
(1)、在blogs-root目錄,進入命令行,輸入
mvn archetype:create -DgroupId=org.yywang -DartifactId=blogs-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveModel=false
在blogs-root目錄下,增加了blogs-service目錄。
在blogs-root目錄下的pom文件,modules節點下多了<module>blogs-service</module>
(2)、修改blogs-service目錄下的pom文件增加blogs-persist的依賴,修改為如下:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.yywang</groupId> <artifactId>blogs-root</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>blogs-service</artifactId> <packaging>jar</packaging> <name>blogs-service</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.yywang</groupId> <artifactId>blogs-persist</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
4、創建blogs-web,web交互模塊
(1)、在blogs-root目錄,進入命令行,輸入
mvn archetype:create -DgroupId=org.yywang -DartifactId=blogs-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveModel=false
在blogs-root目錄下,增加了blogs-web目錄。
在blogs-root目錄下的pom文件,modules節點下多了<module>blogs-web</module>
(2)、修改blogs-web目錄下的pom文件增加blogs-service的依賴,修改為如下:
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.yywang</groupId> <artifactId>blogs-root</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>blogs-web</artifactId> <packaging>war</packaging> <name>blogs-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.yywang</groupId> <artifactId>blogs-service</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>blogs-web</finalName> </build> </project>
完成所有模塊的創建后,blogs-root目錄下的pom文件如下:
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.yywang</groupId> <artifactId>blogs-root</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>blogs-root</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <modules> <module>blogs-domain</module> <module>blogs-persist</module> <module>blogs-service</module> <module>blogs-web</module> </modules> </project>
這樣就完成了maven多模塊項目的創建。
