1. 程式人生 > >簡潔易懂這樣講MAVEN

簡潔易懂這樣講MAVEN

------------------------------maven3常用命令---------------------------

1、常用命令

    1)建立一個Project

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

  mvn archetype:generate  固定格式

  -DgroupId         組織標識(包名)

  -DartifactId        專案名稱

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

  -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

  2、標準的Maven專案結構  

                                       

                    

    src/main/java  存放專案的原始碼

    src/test/java  存放測試原始碼

    如果要存放一些配置檔案,可以再建立一個目錄src/main/resource存放,如存放log4j.properties等

------------------------------java專案搭建---------------------------

使用Maven構建一個簡單的Java專案

  1、進入命令列,執行下面的語句。

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

  執行完成後,可以看到如下結果:

  BUILD SUCCESS,當在前使用者目錄下(即C:\Documents and Settings\Administrator)下構建了一個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檔案。

    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


------------------------------web專案搭建---------------------------

1、進入命令列,執行:

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

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

  在當前使用者目錄下,生成的web專案目錄結構如下:

                        

  2、當然這個空的專案,只有一個index.jsp頁面,打包釋出執行。

    1)在命令列切換到my-web-app目錄,執行:mvn package,構建成功後,my-web-app目錄下多了一個target目錄,在這個目錄下會打包成my-web-app.war,把這個war包拷貝到Tomcat的釋出目錄下就可以運行了。 

    2)整合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><!--web專案預設打包方式 war-->
  <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>
    
    <pluginManagement>
    <!--配置Jetty-->
      <plugins>
        <plugin>
         <groupId>org.mortbay.jetty</groupId>   
         <artifactId>maven-jetty-plugin</artifactId>
        </plugin>
      </plugins>
</pluginManagement>

    
  </build>
  
</project>
複製程式碼

    然後執行:mvn jetty:run 就可以在8080埠上訪問應用了。

相關推薦

簡潔易懂這樣MAVEN

------------------------------maven3常用命令--------------------------- 1、常用命令     1)建立一個Project mvn archetype:generate -DgroupId=com.mycompany.app -Dart

softmax_通俗易懂一下起到什麽作用

text 概率 想要 else 概率問題 tex bsp 二分 表示 softmax其實就是輸出層的一個激活函數 公式我就不寫了 舉個例子: 比如說輸出一個二分類的結果[a,b](這裏還沒有使用softmax函數)(a>b) 現在的要求是想要結果中比較大的數字

簡潔易懂的vuex總結

1 下載vuex。 使用npm安裝 vuex。在控制命令列中輸入下邊的命令。 npm install vuex --save 2 引用vuex。 在專案的src下新建資料夾store。在store資料夾下新建index.js(或者叫做store.js)。在index

Java之列舉, 程式設計師應該掌握的開發技巧“簡潔易懂又安全的程式碼”

java列舉 背景 JDK1.5引入了新的型別——列舉,列舉型別提高了程式碼的 簡潔性、安全性以及便捷性 。 學習目標 學會列舉的基本用法 利用列舉去設計業務功能 程式碼舉例 寫一個新增內容的邏輯 內容實體物件 一般程式設計師可能定義static、ty

greendao的使用(簡潔易懂

今天在專案裡使用到了greendao,記錄一下greendao的使用過程。 greendao是對sqlite資料庫操作的封裝,可以讓我們更加方便的使用sqlite,其它類似的框架還有OrmLite、SugarORM、Active Android、Realm。但

android實現表情輸入(極其簡潔易懂

效果: 只要把emoji圖片換成你自己的資源圖片就可以使用了,程式碼很簡潔。 圖片解析類: public class EmojiUtil { /** * 對spana

viewpager輪播圖的實現(簡潔易懂

在做這個效果的時候,我第一時間看了網上的輪播方式,發現問題很多,有的人在程式碼裡大量的判斷手動滑動和自動滑動的狀態改變,有的人的輪播是定義了一個很大的Int值,通過順序播放相同的圖片來實現的偽輪播,看過這些程式碼感覺並不滿意,所以嘗試自己實現。 在輪播更新UI

歸併排序(分治法+簡潔易懂

歸併排序是一種高效的排序演算法(時間複雜度(O(nlogn))),按照分治三步法,對歸併排序演算法介紹如下: 劃分問題: 把序列分成元素個數儘量相等的兩半 遞迴求解:把兩半元素分別排序。 合併問題:把兩個有序表合併成一個 (我之前看都沒有看過歸併排序這麼

網路程式設計理論知識(三)TCP三次握手與四次揮手最簡潔易懂的解釋

建立TCP需要三次握手才能建立,而斷開連線則需要四次握手。整個過程如下圖所示: 建立連線的過程: TCP 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 TCP 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機

win10-caffe-python2.7配置方法(簡潔易懂!!)

引言    Caffe,全稱Convolutional Architecture for Fast Feature Embedding。是一種常用的深度學習框架,在視訊、影象處理方面應用較多。借用《21天實戰caffe》裡面的一段很形象的描述:Caffe的萬丈

CollapsingToolbarLayout用法詳解(簡潔易懂

Collapsing翻譯過來就是摺疊的意思。 CollapsingToolbarLayout:顧名思義就是可摺疊的toolbar佈局。 先看一下使用它的效果: 可以看到有這樣幾個效果: 1、背景圖片漸漸消失變為主題顏色 2、FloatingActi

371. Sum of Two Integers也許是最簡潔易懂的做法了

Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.

簡潔易懂】CF372C Watching Fireworks is Fun dp + 單調佇列優化 dp優化 ACM codeforces

題目大意 一條街道有\(n\)個區域。 從左到右編號為\(1\)到\(n\)。 相鄰區域之間的距離為\(1\)。 在節日期間,有\(m\)次煙花要燃放。 第\(i\)次煙花燃放區域為\(a_i\) ,幸福屬性為\(b_i\),時間為\(t_i\)。\(t_i \leqslant t_{i+1}\) 如果你在第

【系統之音】Activity啟動流程——史上最全最簡潔易懂

        Activity的啟動流程是一個資深Android工程師必須掌握的內容,也是高職級面試中的高頻面試知識點,無論是從事應用層開發,還是Framework開發,其重要性都無需我多言。而要真正理解它,就不可避免地要深入到原始碼了,本文將從Android8.1系

【系統之音】Activity啟動流程剖析——史上最全最簡潔易懂

        Activity的啟動流程是一個資深Android工程師必須掌握的內容,也是高職級面試中的高頻面試知識點,無論是從事應用層開發,還是Framework開發,其重要性都無需我多言。而要真正理解它,就不可避免地要深入到原始碼了,本文將從Android8.1系

這樣理解原型,更加容易易懂

== ciw iic 驗證 函數的原型 存在 cif swd 枚舉 無論什麽時候,只要創建了一個新函數,就會根據一組特定的規則為該函數創建一個prototype屬性,這個屬性指向函數的原型對象。所有原型對象都會自動獲得一個consturctor屬性,這個屬性指向protot

對比Git 與 SVN,這篇的很易懂

evel 接下來 核心概念 ssa 操作 過程 cal nal 當前目錄 歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 本文由騰訊工蜂發表於雲+社區專欄 導語 本文從 Git 與 SVN 的對比入手,介紹如何通過 Git-SVN 開始使用 Git,並總結平

maven如何編譯(陳老師精一看就懂)

陳老師說了,沒強調的意味著現在不要花精力去研究,會用即可。後面不斷用它自然不就會了嗎。   maven被陳老師講完之後簡直太特麼簡單了,以下是步驟: 1. eclipse- new project--maven 建立maven專案 2. 一直next即可,group id就

對比 Git 與 SVN,這篇的很易懂

一、Git vs SVNGit 和 SVN 孰優孰好,每個人有不同的體驗。 Git是分散式的,SVN是集中式的 這是 Git 和 SVN 最大的區別。若能掌握這個概念,兩者區別基本搞懂大半。因為 Git 是分散式的,所以 Git 支援離線工作,在本地可以進行很多操作,包括接下來將要重磅推出的分支功能。而

particle filtering---粒子濾波(的很通俗易懂

在論文中看到粒子濾波的知識點,在網上找到的幾篇講的很易的文章: http://blog.csdn.net/heyijia0327/article/details/40899819 http://blog.csdn.net/heyijia0327/article/details/4092909