Maven笔记(2)-- 构建Java Project 及 Maven命令使用
<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.esom.tech</groupId> <artifactId>helloworld</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>helloworld</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> </dependencies></project>
<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ~/.m2/repository <localRepository>/path/to/local/repo</localRepository> -->
package com.esom.tech.helloworld;public class Helloworld {public String sayHello(){return "Hello World!";}public static void main(String[] args) {System.out.println(new Helloworld().sayHello());}}
?
项目测试代码:HelloworldTest.java
package com.esom.tech.helloworld;import com.esom.tech.helloworld.Helloworld;import junit.framework.TestCase;public class HelloworldTest extends TestCase{public void testSayHello(){String ret = new Helloworld().sayHello();assertEquals(ret, "Hello World!");}}?
2.1)用Maven编译源程序,进入命令行,切换到项目根目录,执行命令:mvn clean compile 或者 mvn clean compiler:compile,会看到如下输出:

?
编译成功,clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码,编译后的主代码class文件存放在target\classes里面。
?
2.2)用Maven进行单元测试,进入命令行,切换到项目根目录,执行命令:mvn clean test,会看到如下输出:

?
测试成功,编译后的测试代码class文件存放在target\test-classes里面,并会在target项目下生成测试报告。

?
2.3)打包及运行
?
a. 打包:进入命令行,切换到项目根目录,执行命令:mvn clean package 进行打包,输出如下:

?
执行打包命令前,会先执行编译和测试命令,构建成功后,再在target目录下生成helloworld-0.0.1-SNAPSHOT.jar包。
?
b. 安装:进入命令行,切换到项目根目录,执行命令:mvn clean install 进行安装?,输出如下:

?
执行安装命令前,会先执行编译、测试、打包命令构建成功,再将项目的jar包安装到本地仓库。
?
c.??运行jar:进入命令行,切换到项目根目录,执行命令:java -cp target\helloworld-0.0.1-SNAPSHOT.jar com.esom.tech.helloworld.Helloworld,输出Hello World! :
?
?
命令回顾:
mvn clean compile
mvn clean test
mvn clean package
mvn clean install