Maven 简明教程

Maven - Build & Test Project

我们在项目创建章节中学到的内容是如何使用 Maven 创建 Java 应用程序。现在,我们将了解如何构建和测试应用程序。

What we learnt in Project Creation chapter is how to create a Java application using Maven. Now we’ll see how to build and test the application.

转到 C:/MVN 目录(你在其中创建 Java 应用程序)。打开 consumerBanking 文件夹。你将看到 POM.xml 文件,其中包含下列内容。更新它以反映当前的 Java 版本。

Go to C:/MVN directory where you’ve created your java application. Open consumerBanking folder. You will see the POM.xml file with the following contents. Update it to reflect the current java version.

<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.companyname.projectgroup</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
   <properties>
      <maven.compiler.source>11</maven.compiler.source>
      <maven.compiler.target>11</maven.compiler.target>
   </properties>
   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
      </dependency>
   </dependencies>
</project>

这里你可以看到,Maven 已将 Junit 作为测试框架添加进来。在先前章节中所讨论的那样,默认情况下,Maven 会在其默认目录结构中添加源文件 App.java 和测试文件 AppTest.java

Here you can see, Maven already added Junit as test framework. By default, Maven adds a source file App.java and a test file AppTest.java in its default directory structure, as discussed in the previous chapter.

让我们打开命令控制台,转到 C:\MVN\consumerBanking 目录,然后执行以下 mvn 命令。

Let’s open the command console, go the C:\MVN\consumerBanking directory and execute the following mvn command.

C:\MVN\consumerBanking>mvn clean package

Maven 将开始构建该项目。

Maven will start building the project.

C:\MVN\consumerBanking>mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.companyname.bank:consumerBanking >----------------
[INFO] Building consumerBanking 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ consumerBanking ---
[INFO] Deleting C:\MVN\consumerBanking\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ consumerBanking ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\consumerBanking\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ consumerBanking ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\MVN\consumerBanking\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ consumerBanking ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\consumerBanking\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ consumerBanking ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\MVN\consumerBanking\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ consumerBanking ---
[INFO] Surefire report directory: C:\MVN\consumerBanking\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.companyname.bank.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ consumerBanking ---
[INFO] Building jar: C:\MVN\consumerBanking\target\consumerBanking-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.663 s
[INFO] Finished at: 2021-12-13T17:34:27+05:30
[INFO] ------------------------------------------------------------------------

C:\MVN\consumerBanking>

你已构建自己的项目并创建了最终 jar 文件,以下是关键学习概念 −

You’ve built your project and created final jar file, following are the key learning concepts −

  1. We give maven two goals, first to clean the target directory (clean) and then package the project build output as jar (package).

  2. Packaged jar is available in consumerBanking\target folder as consumerBanking-1.0-SNAPSHOT.jar.

  3. Test reports are available in consumerBanking\target\surefire-reports folder.

  4. Maven compiles the source code file(s) and then tests the source code file(s).

  5. Then Maven runs the test cases.

  6. Finally, Maven creates the package.

现在打开命令行控制台,转到 C:\MVN\consumerBanking\target\classes 目录,并执行以下 java 命令。

Now open the command console, go the C:\MVN\consumerBanking\target\classes directory and execute the following java command.

>java com.companyname.bank.App

您将看到如下结果 −

You will see the result as follows −

Hello World!

Adding Java Source Files

让我们看看如何在项目中添加其他 Java 文件。打开 C:\MVN\consumerBanking\src\main\java\com\companyname\bank 文件夹,其中创建名为 Util.java 的 Util 类。

Let’s see how we can add additional Java files in our project. Open C:\MVN\consumerBanking\src\main\java\com\companyname\bank folder, create Util class in it as Util.java.

package com.companyname.bank;

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

Update the App class to use Util class.

Update the App class to use Util class.

package com.companyname.bank;

/**
* Hello world!
*
*/

public class App {
   public static void main( String[] args ){
      Util.printMessage("Hello World!");
   }
}

现在打开命令行控制台,转到 C:\MVN\consumerBanking 目录,并执行以下 mvn 命令。

Now open the command console, go the C:\MVN\consumerBanking directory and execute the following mvn command.

>mvn clean compile

Maven 构建成功后,转到 C:\MVN\consumerBanking\target\classes 目录并执行以下 java 命令。

After Maven build is successful, go to the C:\MVN\consumerBanking\target\classes directory and execute the following java command.

>java -cp com.companyname.bank.App

您将看到如下结果 −

You will see the result as follows −

Hello World!