Maven約定:項目的根目錄放置pom.xml
1. 創建一個名爲maven-standard-demo文件夾,新建一個pom.xml文件
D:\workspace\Maven\maven-standard-demo
Pom.xml文件內容如下:
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.charlie.mavendemo</groupId> <artifactId>maven-standard-demo</artifactId> <version>1.0-SNAPSHOT</version> <name>Maven Standard Demo</name> </project> |
2. Maven目錄約定
在maven-standard-demo目錄下創建如下文件夾src/main/java存放項目主代碼;
然後創建main/java主代碼下創建com/charlie/mavendemo目錄
在maven-standard-demo目錄下創建如下文件夾src/test/java存放測試代碼
然後創建test/java主代碼下創建com/charlie/mavendemo目錄
編寫主代碼:main/java/mavendemo/helloword/HelloWord.java
package com.charlie.mavendemo.helloword;
public class HelloWorld {
public String sayHello(){ return "Hello Maven"; }
public static void main(String[] args){
System.out.println(new HelloWorld().sayHello());
} } |
編寫測試代碼:test/java/mavendemo/helloword/HelloWordTest.java
package com.charlie.mavendemo.helloword;
import static org.junit.Assert.assertEquals; import org.junit.Test;
public class HelloWorldTest {
@Test public void testSayHello(){ HelloWorld helloworld = new HelloWorld(); String result = helloworld.sayHello(); assertEquals("Hello Maven",result); }
} |
3. 編譯
在項目目錄D:\workspace\Maven\maven-standard-demo下執行
>mvn clean compile
生成target目錄和target/classes目錄
4. 測試
再次執行mvn clean test
在target目錄下生成了surefire、surefire-reports、和test-classes三個目錄,出測試報告
5. 打包
>mvn clean package
執行了編譯、測試,且生成JAR文件
6. 運行
可以讓其他Maven項目引用生成的JAR
>mvn clean install
執行了編譯、測試、打包,且會生成目錄maven-archiver
7. 生成可執行的JAR
默認打包生成的JAR是不能直接運行的,帶main方法的類信息不會添加到manifest中
編輯pom.xml,在<project><build><plugins>下配置maven-shade-plugin插件,
…… <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.charlie.mavendemo.helloword.HelloWord</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> |
再次執行>mvn clean install
耐心等待各種下載
執行>java -jar target\maven-standard-demo-1.0.jar會輸出Hello Maven