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