Maven 构建 & 项目测试

简介: 本教程介绍了如何使用Maven构建和测试Java应用。在`consumerBanking`项目中,`pom.xml`配置了JUnit作为测试框架。通过命令行执行`mvn clean package`,Maven清理目标目录,编译源码,运行测试并生成`consumerBanking-1.0-SNAPSHOT.jar`。测试报告位于`surefire-reports`文件夹。新增`Util`类并更新`App`以调用`Util`,然后运行`mvn clean compile`编译更新。

Maven 构建 & 项目测试

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

进入 C:/MVN 文件夹下,打开 consumerBanking 文件夹。你将看到有一个 pom.xml 文件,代码如下:


4.0.0
com.companyname.bank
consumerBanking
jar
1.0-SNAPSHOT
consumerBanking
http://maven.apache.org


junit
junit
3.8.1
test



从以上 xml代码中,可知 Maven 已经添加了 JUnit 作为测试框架。

默认情况下 Maven 添加了一个源码文件 C:\MVN\consumerBanking\src\main\java\com\companyname\bank\App.java 和一个测试文件 C:\MVN\consumerBanking\src\test\java\com\companyname\bank\AppTest.java。

打开命令控制台,跳转到 C:\MVN\consumerBanking 目录下,并执行以下 mvn 命令开始构建项目:

C:\MVN\consumerBanking>mvn clean package
[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------
[INFO] Building consumerBanking
[INFO] task-segment: [clean, package]
[INFO] -------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory C:\MVN\consumerBanking\target
...
...
...
[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: C:\MVN\consumerBanking\target\
consumerBanking-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Jul 10 16:52:18 IST 2012
[INFO] Final Memory: 16M/89M
[INFO] ------------------------------------------------------------------------
执行完后,我们已经构建了自己的项目并创建了最终的 jar 文件,下面是要学习的关键概念:

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

Hello World!

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

Util.java
package com.companyname.bank;

public class Util
{
public static void printMessage(String message){
System.out.println(message);
}
}
更新 App 类来使用 Util 类:

App.java
package com.companyname.bank;

/**

  • Hello world!
    /
    public class App
    {
    public static void main( String[] args )
    {
     Util.printMessage("Hello World!");
    
    }
    }
    现在打开命令控制台,跳转到 C:\MVN\consumerBanking 目录下,并执行下面的 mvn 命令。

C:\MVN\consumerBanking>mvn clean compile
在 Maven 构建成功之后,跳转到 C:\MVN\consumerBanking\target\classes 目录下,并执行下面的 java 命令。

C:\MVN\consumerBanking\target\classes>java -cp . com.companyname.bank.App
你可以看到结果:

Hello World!

相关文章
|
Oracle 关系型数据库 数据库
如何利用 Docker 安装 Oracle 数据库
【2月更文挑战第14天】
1894 0
|
NoSQL 网络协议 安全
第5期 MongoDB配置启动方式
MongoDB配置启动方式
1012 0
|
7月前
|
数据可视化 JavaScript 前端开发
利用Postman和Apipost进行API测试的实践与优化-动态参数
在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
|
存储 人工智能 机器人
动手实践召唤专属钉钉AI助手
通过简单几步,你可以在10分钟内在钉钉上增加一个AI机器人。首先创建一个百炼大模型应用,获取API凭证;接着创建钉钉应用,并配置机器人;然后利用阿里云AppFlow建立连接流,无需编码即可关联机器人与大模型应用;最后为大模型应用添加私有知识库,提升问答准确性。百炼提供新用户免费额度,降低初期成本。整个过程直观易懂,助你快速搭建智能助手。
737 1
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
1512 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
12月前
|
数据采集 数据安全/隐私保护
​ CDGA|电子行业数据治理六大痛点及突围之道
电子行业在数据治理方面面临着诸多痛点。为了突围而出,企业需要针对这些痛点制定有效的解决方案和措施,包括统一数据标准、打破数据孤岛、保障数据安全、制定合理策略、培养及建立高效团队以及引进先进技术等方面。通过这些努力,企业可以不断提升数据治理的能力和水平,为业务发展提供有力支撑。
|
机器学习/深度学习 人工智能 安全
回望现阶段人工智能招聘岗位和条件
【7月更文挑战第4天】AI公司招聘涉及多个机器学习角色:所有职位都强调尖端ML技术和对用户体验的改进。
576 4
回望现阶段人工智能招聘岗位和条件
|
C# 数据库
C#中的空合并运算符与空合并赋值运算符:简化空值处理
C#中的空合并运算符与空合并赋值运算符:简化空值处理
187 0
|
前端开发 数据安全/隐私保护
【sgPasswordInput】自定义组件:带前端校验密码强度的密码输入框,能够提供密码强度颜色提示和文字提示
【sgPasswordInput】自定义组件:带前端校验密码强度的密码输入框,能够提供密码强度颜色提示和文字提示
|
应用服务中间件 Nacos nginx
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静