剛接觸Maven沒多長時間,實習時在的小公司很不規范,所有web項目都是dynamic web project搭建,沒有用到項目構建,管理工具,導致了非常多的重復工作與低效。
先來看看Maven的功能,下面是來自於百度百科:Maven是基於項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目采用 Maven 的比例在持續增長。
首先構建一個Maven項目,網上有很多介紹,就不重復了。整個Maven項目裡很重要的就是這個pom文件。pom就是用來專門管理項目中用到的各種資源,包括jar包,jdbc驅動等,只要在pom中寫下如下格式的xml,就能夠自動為你下載部署該開發包(這是我的項目中的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.myapp.lxiao</groupId>
<artifactId>MavenSSH</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>MavenSSH Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- 添加mysql jdbc驅動 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- struts2核心包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.1.2</version>
</dependency>
<!-- structs2與spring整合 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.1.2</version>
</dependency>
<!-- 在 Struts2中要使用 Ajax獲得Json數據。要使用Ajax必須引用此Jar -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.3.1.2</version>
</dependency>
<!-- Hibernate核心包 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
<!-- spring3可選的依賴注入,不可缺少 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.3</version>
</dependency>
<!-- 擴展Java類與實現Java接口 -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<!-- 運用Log4j必須用到這個包 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
</dependency>
<!-- Spring包 -->
<!-- Spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
<type>jar</type>
</dependency>
<!-- Spring在WEB上的MVC框架上加上這個包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.3.RELEASE</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<!-- log4j日志包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>compile</scope>
</dependency>
<!-- jsp接口 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<!-- 連接池 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!-- servlet接口 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- Mysql數據庫JDBC連接包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<finalName>MavenSSH</finalName>
</build>
</project>
然後我們來看一下Maven項目的目錄結構,能夠知道不同程序,文件都放到哪些文件夾下。
src/main/java application library sources - java源代碼文件 src/main/resources application library resources - 資源庫,會自動復制到classes文件夾下 src/main/filters resources filter files - 資源過濾文件 src/main/assembly assembly descriptor - 組件的描述配置,如何打包 src/main/config configuration files - 配置文件 src/main/webapp web application sources - web應用的目錄,WEB-INF,js,css等 src/main/bin 腳本庫 src/test/java 單元測試java源代碼文件 src/test/resources 測試需要的資源庫 src/test/filters 測試資源過濾庫 src/site 一些文檔 target/ 存放項目構建後的文件和目錄,jar包,war包,編譯的class文件等;Maven構建時生成的 pom.xml 工程描述文件 LICENSE.txt license README.txt read me
知道了maven的目錄結構,我們就可以在各自的目錄下創建對應的文件了。
Maven權威指南_中文完整版清晰PDF http://www.linuxidc.com/Linux/2014-06/103690.htm
Maven 3.1.0 發布,項目構建工具 http://www.linuxidc.com/Linux/2013-07/87403.htm
Linux 安裝 Maven http://www.linuxidc.com/Linux/2013-05/84489.htm
Maven3.0 配置和簡單使用 http://www.linuxidc.com/Linux/2013-04/82939.htm
Ubuntu下搭建sun-jdk和Maven2 http://www.linuxidc.com/Linux/2012-12/76531.htm
Maven使用入門 http://www.linuxidc.com/Linux/2012-11/74354.htm