Maven 构建 & 项目测试

在上一章节中我们学会了如何使用 Maven 创建 Java 应用。接下来我们要学习如何构建和测试这个项目。

进入 E:/MVN 文件夹下,打开 my-app 文件夹。你将看到有一个 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.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>my-app</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
...

默认情况下 Maven 添加了一个源码文件 E:\MVN\my-app\src\main\java\com\mycompany\app\App.java 和一个测试文件 E:\MVN\my-app\src\test\java\com\mycompany\app\AppTest.java。

打开命令控制台,进入到 E:\MVN\my-app 目录下,并执行以下 mvn 命令开始构建项目:

E:\MVN\my-app>mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< com.mycompany.app:my-app >----------------------
[INFO] Building my-app 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
...
...
...
[INFO] Building jar: E:\MVN\my-app\target\my-app-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  37.268 s
[INFO] Finished at: 2022-07-15T12:55:35+08:00
[INFO] ------------------------------------------------------------------------

执行完后,我们已经构建了自己的项目并创建了最终的 jar 文件,下面是要学习的关键概念:

  • 我们给了 maven 两个目标,首先清理目标目录(clean),然后打包项目构建的输出为 jar(package)文件。
  • 打包好的 jar 文件可以在 my-app\target 中获得,名称为 my-app-1.0-SNAPSHOT.jar。
  • 测试报告存放在 my-app\target\surefire-reports 文件夹中。
  • Maven 编译源码文件,以及测试源码文件。
  • 接着 Maven 运行测试用例。
  • 最后 Maven 创建项目包。
E:\MVN\my-app\target\classes>java com.mycompany.app.App

你可以看到结果:

Hello World!

添加 Java 源文件
接下来我们看看如何添加其他的 Java 文件到项目中。打开 E:\MVN\my-app\src\main\java\com\mycompany\app 文件夹,在其中创建 Util 类 Util.java。

Util.java

package com.mycompany.app;
 
public class Util 
{
   public static void printMessage(String message){
       System.out.println(message);
   }
}

更新 App 类来使用 Util 类:

App.java

package com.mycompany.app;
 
/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        Util.printMessage("Hello World!");
    }
}

现在打开命令控制台,跳转到 E:\MVN\my-app 目录下,并执行下面的 mvn 命令。

E:\MVN\my-app>mvn clean compile

在 Maven 构建成功之后,跳转到 E:\MVN\my-app\target\classes 目录下,并执行下面的 java 命令。

E:\MVN\my-app\target\classes>java -cp . com.mycompany.app.App

你可以看到结果:

Hello World!