Maven (2) Maven Hello world

1. Maven Hello world:

先建立一個測試用資料夾。

$ mkdir JavaMaven
$ cd JavaMaven

使用 Maven 建構專案:

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

逐一分析上面的命令。

  • mvn archetype:generate: 用於產生專案架構,後面 -D 開頭的東西都是這個指令的參數。
  • -DartifactId=my-app: 專案名稱,會產生一個名稱為 my-app 的專案資料夾。
  • -DgroupId=com.mycompany.app: Java 的 Package 簽名,會在專案中產生 com/mycompany/app 的嵌套式資料夾結構 (註: Java 的套件都是採用這種命名格式)。
  • -DarchetypeArtifactId=maven-archetype-quickstart: 指定使用 maven-archetype-quickstart 的風格建立專案,會形成對應的資料夾結構。
  • -DinteractiveMode=false: 如果沒有設成 false 建構專案的過程中會再詢問一些可調整參數。

建構完成的 maven-archetype-quickstart 專案資料夾結構。

.
└── my-app
    ├── pom.xml
    └── src
        ├── main
        │   └── java
        │       └── com
        │           └── mycompany
        │               └── app
        │                   └── App.java
        └── test
            └── java
                └── com
                    └── mycompany
                        └── app                            
                            └── AppTest.java

逐一解釋資料夾結構。

  • pom.xml: Project Object Model 一個描述專案關係的 xml 檔案。
  • src: Source code 資料夾,用來放 Java 檔。分成 main 和 test,main 是專案主程式,test 是測試用程式。
  • com/mycompany/app: 由 -DgroupId 選項產生,對應 App.java 中的第一行 package com.mycompany.app;
  • App.java 和 AppTest.java: 專案主程式和測試用程式。

2. Build and Run:

移動到 myapp 並建立 package

$ cd myapp
$ mvn package

註: mvn package 可以用 mvn install 代替,若使用 mvn install 會安裝到 local repository 裡面變成可以跨專案使用的套件。

執行程式。

$ java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

-cp target/my-app-1.0-SNAPSHOT.jar。 指定使用的 jar 檔案,執行 jar 的 com.mycompany.app.App 中的 main()。

留言

熱門文章