使用maven在dos下構建java項目,構建java web項目

1.maven升級html

      你們能夠看獲得個人第一篇文章裏面用的是maven 2.2.1,可是如今已經出了maven更高級的版本,咱們升級以得到更多更酷的新特性,以及避免一些舊的bug,且maven新版本是向下兼容,因此不要再猶豫,根本不會出現什麼問題。
java

       在Windows上更新Maven很是簡便,只須要下載新的Maven安裝文件,解壓至本地目錄,而後更新M2_HOME環境變量即可。例如,假設Maven推出了新版本3.1,咱們將其下載而後解壓至目錄D:\bin\apache-maven-3.1,接着遵守前一節描述的步驟編輯環境變量M2_HOME,更改其值爲D:\bin\apache-maven-3.1。至此,更新就完成了。同理,若是你須要使用某一箇舊版本的Maven,也只須要編輯M2_HOME環境變量指向舊版本的安裝目錄。web

       注意:我下面講的都是針對maven 3版本的apache

2.  maven 經常使用命令總結(只對maven 3以上的版本,maven 2版本不適用)瀏覽器

1)建立一個Projecttomcat

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

  mvn archetype:generate  固定格式服務器

  -DgroupId         組織標識(包名)mvc

  -DartifactId         項目名稱app

  -DarchetypeArtifactId      指定ArchetypeId,maven-archetype-quickstart,建立一個Java Project;maven-archetype-webapp,建立一個Web Projecteclipse

  -DinteractiveMode      是否使用交互模式

2)編譯源代碼

mvn compile

3)編譯測試代碼

mvn test-compile

4)清空

mvn clean

5)運行測試

mvn test

6)生產站點目錄並打包

mvn site-deploy

7)安裝當前工程的輸出文件到本地倉庫

mvn install

8)打包

mvn package

9)先清除再打包

mvn clean package

10)打成jar包

mvn jar:jar

 11)生成eclipse項目  

mvn eclipse:eclipse

 12)查看幫助信息

mvn help:help

13)查看maven有哪些項目類型分類

mvn archetype:generate -DarchetypeCatalog=intrenal

3 .用maven構建java項目

    1>進入命令行,執行下面的語句

mvn archetype:generate -DgroupId=cn.luxh.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

     執行完成後,結果以下:

    

BUILD SUCCESS,當在前用戶目錄下(即D:\maven)下構建了一個Java Project叫作my-app

 2> 進入my-app目錄,能夠看到有一個pom.xml文件,這個文件是Maven的核心。

    1)pom意思就是project object model。

    2)pom.xml包含了項目構建的信息,包括項目的信息、項目的依賴等。

    3)pom.xml文件是能夠繼承的,大型項目中,子模塊的pom.xml通常都會繼承於父模塊的pom.xml

    4)剛構建的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>cn.luxh.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

節點元素說明

       <project>      pom文件的頂級節點

    <modelVersion>   object model版本,對Maven2和Maven3來講,只能是4.0.0 

    <groupId>      項目建立組織的標識符,通常是域名的倒寫

    <artifactId>    定義了項目在所屬組織的標識符下的惟一標識,一個組織下能夠有多個項目

    <packaging>      打包的方式,有jar、war、ear等

    <version>       當前項目的版本,SNAPSHOT,表示是快照版本,在開發中

    <name>        項目的名稱

    <url>        項目的地址

    <dependencies>   構建項目依賴的jar

    <description>    項目的描述

          其中由groupId、artifactId和version惟一的肯定了一個項目座標

 3>構建的my-app項目結構以下

                    

  1)編譯源程序,進入命令行,切換到my-app目錄,執行命令:mvn clean compile

       

            編譯成功,在my-app目錄下多出一個target目錄,target\classes裏面存放的就是編譯後的class文件(App.class)

  2)測試,進入命令行,切換到my-app目錄,執行命令:mvc clean test

      

          測試成功,在my-app\target目錄下會有一個test-classes目錄,存放的就是測試代碼的class文件。

     3)打包,進入命令行,切換到my-app目錄,執行命令:mvc clean package,執行打包命令前,會先執行編譯和測試命令

       

       構建成功後,會再target目錄下生成my-app-1.0-SNAPSHOT.jar包

      4)安裝,進入命令行,切換到my-app目錄,執行命令:mvc clean install ,執行安裝命令前,會先執行編譯、測試、打包命令

       

        構建成功,就會將項目的jar包安裝到本地倉庫

      5)運行jar包,進入命令行,切換到my-app目錄,執行命令:java -cp target\my-app-1.0-SNAPSHOT.jar cn.luxh.app.App

       

3. 標準的Maven項目結構                                         

                    

    src/main/java  存放項目的源代碼

    src/test/java  存放測試源代碼

    若是要存放一些配置文件,能夠再創建一個目錄src/main/resource存放,如存放log4j.properties等

4.用maven構建java web項目

一、進入命令行,執行:

mvn archetype:generate -DgroupId=cn.luxh.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false

而後cmd輸出卡死在Generating project in Interactive mode不動了,-X 打開debug模式重試了一次:

mvn archetype:generate -X -DgroupId=cn.luxh.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false

原來是卡在這裏了:
[DEBUG] -- end configuration --
[INFO] Generating project in Interactive mode
[DEBUG] Searching for remote catalog: http://repo1.maven.org/maven2/archetype-catalog.xml

加個參數 -DarchetypeCatalog=internal 讓它不要從遠程服務器上取catalog:

mvn archetype:generate  -DarchetypeCatalog=internal  -DgroupId=cn.luxh.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false

出現填寫版本號,輸入:0.0.1SNAPSHOT 

確認等直接回車就行,構建成功出現下面的提示。

在當前用戶目錄下,生成的web項目目錄結構以下:

                        

二、固然這個空的項目,只有一個index.jsp頁面,打包發佈運行

   方法一:集成Jetty發佈運行,須要配置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>cn.luxh.app</groupId>
  <artifactId>my-web-app</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-web-app Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>my-web-app</finalName>
<plugins>
     <!-- Jetty Server的配置以下 -->
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <version>6.1.10</version>
        <configuration>
          <scanIntervalSeconds>2</scanIntervalSeconds>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

而後執行:mvn jetty:run,效果以下:

在taget目錄下,多了以下目錄結構:

在work/jsp/org/apache/jsp/目錄下有一個index_jsp.class文件

能夠看獲得jetty server 已經運行起來了,jetty是一種maven自帶的web容器,而後咱們能夠看獲得默認端口爲:8080,,經過路徑/my-web-app訪問咱們的應用,

在瀏覽器輸入:http://127.0.0.1:8080/my-web-app/,出現以下界面:


 方法二:在命令行切換到my-web-app目錄,執行:mvn package,構建成功後,my-web-app目錄下多了一個target目錄,在這個目錄下會打包成my-web-app.war,把這個war包拷貝到Tomcat的發佈目錄下(就是tomcat的webapps目錄下)就能夠運行了。

紅框裏面框住的就是mvn package以後,生成的目錄及文件

相關文章
相關標籤/搜索