1. 程式人生 > >Maven學習筆記(三)—— 使用Maven自帶的功能建立Java和JavaWeb專案

Maven學習筆記(三)—— 使用Maven自帶的功能建立Java和JavaWeb專案

一、使用Maven建立Java專案

1、開啟命令視窗,輸入建立命令

使用shift+右鍵單擊,選擇在此處選擇開啟命令視窗,輸入如下命令:
mvn archetype:generate -DgroupId=com.mengfei.demo -DartifactId=MavenJavaDemo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

命令說明:mvn archetype:generate:這是建立java專案的maven命令;-D:用來傳遞引數;groupId:引數,一般為公司或組織名稱,預設使用此名稱作為包名;artifactId:引數,一般為專案名-模組名的組合方式(普通的專案會有多個模組,為了區分),建立專案時會預設建立一個模組,會預設使用此名稱作為模組名;maven-archetype-quickstart:引數,建立maven專案的原型,quickstart代表java專案原型(更多關於archetype的內容可以參考:
Maven之自定義archetype生成專案骨架
);interactiveMode:引數,是否使用互動模式建立java專案,預設為true,這裡設定為false,讓maven自動構建。

2、建立成功,檢視工作目錄


3、檢視pom.xml檔案

<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.mengfei.demo</groupId>
  <!--專案組中的專案—模組標識,一般為專案名-模組名的組合方式(普通的專案會有多個模組,為了區分),建立專案時會預設建立一個模組,會預設使用此名稱作為模組名,artifact代表是一個資源集合體(可以理解為打包成品)-->
  <artifactId>MavenJavaDemo</artifactId>
  <!--專案的打包方式,java專案是jar包,web專案為war包-->
  <packaging>jar</packaging>
  <!--專案的版本號,可自定義,這裡預設使用快照版本,代表正在開發中-->
  <version>1.0-SNAPSHOT</version>
  <!--專案模組的名稱,相當於是別名-->
  <name>MavenJavaDemo</name>
  <!--專案的地址,可自定義-->
  <url>http://maven.apache.org</url>
  
  <!--屬性設定,可在這裡統一定義依賴jar包的版本號或者其他屬性配置-->
  <properties>
     <!--設定編碼屬性為utf-8,預設使用的是GBK-->
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <!--某個依賴定義-->
    <dependency>
      <!--maven通過groupId、artifactId、version來確定一個專案的唯一座標,確保不會重複-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <!--該依賴的作用範圍,預設為compile,還有test、provided、runtime、system
	詳細介紹可以參考:http://blog.csdn.net/kimylrong/article/details/50353161-->
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

4、編譯命令:mvn compile



5、測試命令:mvn test



6、打包命令:mvn package



在target目錄下開啟命令視窗,執行jar包,輸入命令:java -cp MavenJavaDemo-1.0-SNAPSHOT.jar com.mengfei.demo.App ,執行結果如下圖:

7、安裝命令:mvn install




二、使用Maven建立JavaWeb專案

1、開啟命令視窗,輸入建立命令

使用shift+右鍵單擊,選擇在此處選擇開啟命令視窗,輸入如下命令:
mvn archetype:generate -DgroupId=com.mengfei.demo -DartifactId=MavenJavaWebDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

2、建立成功,檢視工作目錄


3、檢視pom.xml檔案

<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.mengfei.demo</groupId>
  <artifactId>MavenJavaWebDemo</artifactId>
  <!--web專案的打包方式為war包-->
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MavenJavaWebDemo Maven Webapp</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>
  <build>
    <!--這裡多了一個finalName,預設為當前模組的artifactId-->
    <finalName>MavenJavaWebDemo</finalName>
  </build>
</project>

4、進入到新建專案的根目錄,執行打包命令:mvn package



5、執行war包

方式一:將war包放到tomcat下面執行

第一步:將war包複製到tomcat目錄下面的webapps目錄
第二步:進入到tomcat下面的bin目錄,找到startup.bat,雙擊啟動tomcat
第三步:不關閉啟動頁面,在瀏覽器輸入訪問路徑,訪問專案中的index.jsp中的內容

方式二:使用tomcat外掛釋出執行

第一步:修改pom.xml檔案,在pom.xml檔案中新增如下內容

<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.mengfei.demo</groupId>
  <artifactId>MavenJavaWebDemo</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MavenJavaWebDemo Maven Webapp</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>
  <build>
    <finalName>MavenJavaWebDemo</finalName>
    <pluginManagement>
         <!--配置Tomcat-->
           <plugins>
             <plugin>
              <groupId>org.apache.tomcat.maven</groupId>   
              <artifactId>tomcat7-maven-plugin</artifactId>
             </plugin>
           </plugins>
    </pluginManagement>
  </build>
</project>

第二步:進入到此專案的根目錄,在根目錄下輸入命令:mvn tomcat7:run

要下載外掛,可能要等一會 

第三步:開啟瀏覽器,輸入訪問路徑,同樣可以訪問專案下面的index.jsp頁面(tomcat啟動視窗不要關閉


方式三:使用jetty外掛釋出執行

第一步:修改pom.xml檔案,在pom.xml中新增如下內容
<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.mengfei.demo</groupId>
  <artifactId>MavenJavaWebDemo</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MavenJavaWebDemo Maven Webapp</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>
  <build>
    <finalName>MavenJavaWebDemo</finalName>
    <pluginManagement>
         <!--配置Jetty-->
           <plugins>
             <plugin>
              <groupId>org.mortbay.jetty</groupId>   
              <artifactId>maven-jetty-plugin</artifactId>
             </plugin>
           </plugins>
    </pluginManagement>
  </build>
</project>
第二步:進入到此專案的根目錄,在根目錄下輸入命令:mvn jetty:run
要下載外掛,可能要等一會兒
第三步:開啟瀏覽器,輸入訪問路徑,同樣可以訪問專案下面的index.jsp頁面(jetty啟動視窗不要關閉

6、簡單擴充套件,在MavenJavaWebDemo專案中呼叫MavenJavaDemo專案中App類中的方法

第一步: 在MavenJavaDemo專案中的com.mengfei.demo包中的APP類中新新增一個方法,如下:
package com.mengfei.demo;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }

    public String say(){
	return "HelloMaven";
    }
}

第二步:將MavenJavaDemo專案打包成jar包安裝到本地倉庫提示:在MavenJavaDemo專案的根目錄下使用mvn install命令即可第三步:在MavenJavaWebDemo專案的pom.xml檔案中新增MavenJavaDemo專案的jar包依賴,如下:
<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.mengfei.demo</groupId>
  <artifactId>MavenJavaWebDemo</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MavenJavaWebDemo Maven Webapp</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>

    <dependency>
      <groupId>com.mengfei.demo</groupId>
      <artifactId>MavenJavaDemo</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>

  </dependencies>
  <build>
    <finalName>MavenJavaWebDemo</finalName>
    <pluginManagement>
         <!--配置Tomcat-->
           <plugins>
             <plugin>
              <groupId>org.apache.tomcat.maven</groupId>   
              <artifactId>tomcat7-maven-plugin</artifactId>
             </plugin>
           </plugins>
    </pluginManagement>
  </build>
</project>

第四步:修改MavenJavaWebDemo專案中webapp目錄下的index.jsp檔案,程式碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.mengfei.demo.App" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%=new App().say()%>
</body>
</html>

第五步:啟動tomcat(jetty也可以)提示:在MavenJavaWebDemo專案的根目錄下執行mvn tomcat7:run命令即可(jetty就是mvn jetty:run)

第六步:在瀏覽器中訪問此專案下的index.jsp頁面,結果如下: