簡潔易懂這樣講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