在構建項目之前,首先搭建好maven配置環境,然后再配置setting.xml文件,將鏡像配置完成,進行如下步驟:
構建項目命令及參數說明
一、控制台輸入以下命令【在要創建的目錄下】:
mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
參數說明:
- -DgourpId: 組織名,公司網址的反寫 + 項目名稱
- -DartifactId: 項目名-模塊名
- -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,創建一個簡單的 Java 應用
- -DinteractiveMode: 是否使用交互模式
生成的文件夾結構如下:
各個文件夾說明:
文件夾結構 | 描述 |
---|---|
consumerBanking | 包含 src 文件夾和 pom.xml |
src/main/java contains | java 代碼文件在包結構下(com/companyName/bank)。 |
src/main/test contains | 測試代碼文件在包結構下(com/companyName/bank)。 |
src/main/resources | 包含了 圖片 / 屬性 文件(在上面的例子中,我們需要手動創建這個結構)。 |
在 C:\MVN\consumerBanking\src\main\java\com\companyname\bank 文件夾中,可以看到一個 App.java,代碼如下:
package com.companyname.bank; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }
打開 C:\MVN\consumerBanking\src\test\java\com\companyname\bank 文件夾,可以看到 Java 測試文件 AppTest.java。
package com.companyname.bank; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } }
構建項目及測試
進入 C:/MVN 文件夾下,打開 consumerBanking 文件夾。你將看到有一個 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>com.companyname.bank</groupId> <artifactId>consumerBanking</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>consumerBanking</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>
從以上 xml代碼中,可知 Maven 已經添加了 JUnit 作為測試框架。
默認情況下 Maven 添加了一個源碼文件 C:\MVN\consumerBanking\src\main\java\com\companyname\bank\App.java 和一個測試文件 C:\MVN\consumerBanking\src\test\java\com\companyname\bank\AppTest.java。
打開命令控制台,跳轉到 C:\MVN\consumerBanking 目錄下,並執行以下 mvn 命令開始構建項目:
C:\MVN\consumerBanking>mvn clean package
[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------
[INFO] Building consumerBanking
[INFO] task-segment: [clean, package]
[INFO] -------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory C:\MVN\consumerBanking\target
...
...
...
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: C:\MVN\consumerBanking\target\
consumerBanking-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Jul 10 16:52:18 IST 2012
[INFO] Final Memory: 16M/89M
[INFO] -------------------------
執行完后,我們已經構建了自己的項目並創建了最終的 jar 文件,下面是要學習的關鍵概念:
- 我們給了 maven 兩個目標,首先清理目標目錄(clean),然后打包項目構建的輸出為 jar(package)文件。
- 打包好的 jar 文件可以在 consumerBanking\target 中獲得,名稱為 consumerBanking-1.0-SNAPSHOT.jar。
- 測試報告存放在 consumerBanking\target\surefire-reports 文件夾中。
- Maven 編譯源碼文件,以及測試源碼文件。
- 接着 Maven 運行測試用例。
- 最后 Maven 創建項目包。
C:\MVN\consumerBanking\target\classes>java com.companyname.bank.App
你可以看到結果:
Hello World!
添加 Java 源文件
接下來我們看看如何添加其他的 Java 文件到項目中。打開 C:\MVN\consumerBanking\src\main\java\com\companyname\bank 文件夾,在其中創建 Util 類 Util.java。
package com.companyname.bank; public class Util { public static void printMessage(String message){ System.out.println(message); } }
更新 App 類來使用 Util 類:
package com.companyname.bank; /** * Hello world! * */ public class App { public static void main( String[] args ) { Util.printMessage("Hello World!"); } }
現在打開命令控制台,跳轉到 C:\MVN\consumerBanking 目錄下,並執行下面的 mvn 命令。
C:\MVN\consumerBanking>mvn clean compile
在 Maven 構建成功之后,跳轉到 C:\MVN\consumerBanking\target\classes 目錄下,並執行下面的 java 命令。
C:\MVN\consumerBanking\target\classes>java -cp . com.companyname.bank.App
你可以看到結果:
Hello World!
總結:全文來自https://www.runoob.com/maven/maven-build-test-project.html的幾個章節,這里全部放在一起進行學習。
以下是命令總結:
構建項目:
mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
參數說明:
- -DgourpId: 組織名,公司網址的反寫 + 項目名稱
- -DartifactId: 項目名-模塊名
- -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,創建一個簡單的 Java 應用
- -DinteractiveMode: 是否使用交互模式
到項目目錄下構建項目【理解:生成target的過程】:
mvn clean package
測試【到target/classes/下測試...../App】:
java com.companyname.bank.App
在重新編寫java后,編譯:
mvn clean compile
在重新編譯后,執行:
java -cp . com.companyname.bank.App
****構建項目模板:
mvn archetype:generate
根據提示輸入,或參考:https://www.runoob.com/maven/project-templates.html
生成項目文檔【在該項目目錄下執行】:
mvn site
生成javaweb項目:
mvn archetype:generate -DgroupId=com.companyname.automobile -DartifactId=trucks -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
需要注意的是,當文件發生修改時,都要記得在該項目下mvn clean package