maven基本使用方法(命令行)

本篇記錄一下maven在命令行的構建方法,後面講在idea怎麼用。
參考 這裏 有詳細的maven教程。

創建maven項目

最基本的maven項目創建命令如下
mvn archetype:generate -DgroupId={{your_companyName}} -DartifactId={{your_projectName} -DarchetypeArtifactId=maven-archetype-quickstart
在這裏插入圖片描述
根目錄下有一個pom.xml,用來編寫maven的配置(如依賴包)

詳細創建指令如下:
mvn archetype:create或者mvn archetype:generate 是固定寫法,兩者幾乎無區別。
額外參數如下:
-DgroupId 組織標識(包名)
-DartifactId 項目名稱
-DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,創建一個Java Project;maven-archetype-webapp,創建一個Web Project
-DinteractiveMode 是否使用交互模式

archetype是mvn內置的一個插件,create任務可以創建一個java項目骨架,DgroupId是軟件包的名稱,DartifactId是項目名,DarchetypeArtifactId是可用的mvn項目骨架,目前可以使用的骨架有:

maven-archetype-archetype
maven-archetype-j2ee-simple
maven-archetype-mojo
maven-archetype-portlet
maven-archetype-profiles (currently under development)
maven-archetype-quickstart
maven-archetype-simple (currently under development)
maven-archetype-site
maven-archetype-site-simple
maven-archetype-webapp

每一個骨架都會建相應的目錄結構和一些通用文件,最常用的是maven-archetype-quickstartmaven-archetype-webapp骨架。maven-archetype-quickstart骨架是用來創建一個Java Project,而maven-archetype-webapp骨架則是用來創建一個JavaWeb Project。

添加項目依賴

修改pom.xml 文件。例如想增加json解析包,在https://mvnrepository.com 這個網站搜索,然後複製maven配置進去。
https://mvnrepository.com/artifact/org.json/json/20180813

<dependencies>
   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>3.8.1</version>
     <scope>test</scope>
   </dependency>
   <dependency>
       <groupId>org.json</groupId>
       <artifactId>json</artifactId>
       <version>20180813</version>
    </dependency>
    .....
</dependencies>    

默認項目的依賴包下載
完後都放在 C:\Users\Administrator.m2\repository 目錄下。需要修改依賴包的下載目錄的話在 $MAVEN_HOME$\conf\settings.xml 這個文件下修改。

編譯項目

mvn compile
會下載依賴包,然後編譯項目。默認編譯結果在target/classes目錄下,結果爲.class文件。

打包jar

jar是java的包,可以其他項目應用。
命令: mvn package
在這裏插入圖片描述
這個命令會先compile項目,生成classes,然後在把class壓縮到一起生成一個jar包。

清理

mvn clean
清理target目錄的編譯文件。

部署

命令: mvn install
過程: 【清理】→【編譯】→【測試】→【打包】→ 【安裝】
安裝過程就是把.jar相關文件複製到本地倉庫裏。
在這裏插入圖片描述
在這裏插入圖片描述

運行

通過java命令可以運行.class文件,也可以運行.jar文件。
需要注意的點:

  • src源碼的類有多少個main都無所謂(這與c/c++項目不一樣)
  • 通過java命令運行的時候需要指定運行哪一個類
  • jar或class有第三方依賴包的或需要指定依賴包的位置。
    java命令的幾個重要參數
    在這裏插入圖片描述

例如:我現在有2個java文件,編譯成jar文件。
App.java如下:(有第三方包)

package com.hhk;

import org.json.JSONObject;

public class App {
    public static void main(String[] args) {
        JSONObject out = new JSONObject();
        out.put("type", "message");
        System.out.println(out.toString());
    }
}

App2.java如下:

package com.hhk;

/**
 * Hello world!
 *
 */
public class App2 {

    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

pom.xml文件部分如下:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180813</version>
    </dependency>
  </dependencies>
 </dependencies>

運行命令mvn package 打包jar之後。(打包爲testmvn.jar)
先運行App2.java的主函數,命令爲(-cp 和 -classpath一致,表示要加載的jar文件或.class)
java -cp testmvn-1.0-SNAPSHOT.jar com.hhk.App2
在這裏插入圖片描述

App.java依賴json20180813.jar(加載多個.jar)
java -cp "testmvn-1.0-SNAPSHOT.jar;C:\Users\Administrator\.m2\repository\org\json\json\20180813\json-20180813.jar" com.hhk.App
在這裏插入圖片描述

pom.xml

pom.xml文件的節點元素說明:

<project>       pom文件的頂級節點
<modelVersion>     object model版本,對Maven2和Maven3來說,只能是4.0.0 
<groupId>       項目創建組織的標識符,一般是域名的倒寫
<artifactId>   定義了項目在所屬組織的標識符下的唯一標識,一個組織下可以有多個項目
<version>        當前項目的版本,SNAPSHOT,表示是快照版本,在開發中
<packaging>      打包的方式,有jar、war、ear等
<name>        項目的名稱
<url>          項目的地址
<properties>    屬性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependencies>     構建項目依賴的jar
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章