歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Maven項目的目錄結構

  剛接觸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

Copyright © Linux教程網 All Rights Reserved