【Maven从入门到如土】如何在Maven工程中编写代码并执行构建

简介: 【Maven从入门到如土】如何在Maven工程中编写代码并执行构建



在 Maven 工程中编写代码🌴

2.1 主体程序🍒

主体程序指的是被测试的程序,同时也是将来在项目中真正要使用的程序

下为主体程序

package com.duanyf.maven;
  
public class Calculator {
  
  public int sum(int i, int j){
    return i + j;
  }
  
}

2.2 测试程序🍒

package com.duanyf.maven;
  
import org.junit.Test;
import com.atguigu.maven.Calculator;
  
// 静态导入的效果是将Assert类中的静态资源导入当前类
// 这样一来,在当前类中就可以直接使用Assert类中的静态资源,不需要写类名
import static org.junit.Assert.*;
  
public class CalculatorTest{
  
  @Test
  public void testSum(){
    
    // 1.创建Calculator对象
    Calculator calculator = new Calculator();
    
    // 2.调用Calculator对象的方法,获取到程序运行实际的结果
    int actualResult = calculator.sum(5, 3);
    
    // 3.声明一个变量,表示程序运行期待的结果
    int expectedResult = 8;
    
    // 4.使用断言来判断实际结果和期待结果是否一致
    // 如果一致:测试通过,不会抛出异常
    // 如果不一致:抛出异常,测试失败
    assertEquals(expectedResult, actualResult);
    
  }
  
}

执行 Maven 的构建命令🍒

1.要求

运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,那么会看到下面的错误信息:

The goal you specified requires a project to execute but there is no POM in this directory

mvn -v 命令和构建操作无关,只要正确配置了 PATH,在任何目录下执行都可以。而构建相关的命令要在 pom.xml 所在目录下运行——操作哪个工程,就进入这个工程的 pom.xml 目录

2.清理操作🍒

  • 命令:mvn clean
  • 说明:删除 target 目录

3.编译操作🍒

  • 主程序编译:mvn compile
  • 测试程序编译:mvn test-compile
  • 主体程序编译结果存放的目录:target/classes
  • 测试程序编译结果存放的目录:target/test-classes

4.测试操作🍒

  • 命令:mvn test
  • 测试的报告存放的目录:target/surefire-reports

5.打包操作🍒

  • 命令:mvn package
  • 打包的结果:jar
  • 存放的目录:target

6.安装操作🍒

  • 命令:mvn install

说明

安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库。这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的。

坐标信息如下

<groupId>com.atguigu.maven</groupId>
<artifactId>pro01-maven-java</artifactId>
<version>1.0-SNAPSHOT</version>

在 Maven 仓库中生成的路径如下:

D:\maven-rep1026\com\atguigu\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar

安装操作还会将 pom.xml 文件转换为 XXX.pom 文件一起存入本地仓库。所以我们在 Maven 的本地仓库中想看一个 jar 包原始的 pom.xml 文件时,查看对应 XXX.pom 文件即可,它们是名字发生了改变,本质上是同一个文件。


欢迎添加微信,加入我的核心小队,请备注来意

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

目录
相关文章
|
3天前
|
Java 测试技术 Maven
Maven 构建生命周期
**Maven生命周期概览:** - Clean:删除编译输出,如`clean`。 - Default:验证(`validate`)、编译(`compile`)、测试(`test`)、打包(`package`)、检查(`verify`)、安装(`install`)和部署(`deploy`)。 - Site:生成项目文档与站点。 每个生命周期由阶段组成,阶段包含插件目标。如`mvn clean dependency:copy-dependencies package`,先清洁,执行特定目标,再打包。
|
2天前
|
Java Maven
Maven 自动化构建
**Maven自动化构建确保依赖稳定性。当bus-core-api(1.0-SNAPSHOT)构建后,app-web-ui和app-desktop-ui这两个依赖它的项目自动触发构建。app-web-ui与app-desktop-ui均依赖bus-core-api的1.0快照版本。**
|
1天前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven的构建生命周期包括Clean(clean)、Default(validate-compile-test-package-verify-install-deploy)和Site(site-deploy-site)三个阶段。Default生命周期用于验证、编译、测试、打包、检查、安装和部署项目。插件目标如dependency:copy-dependencies可插入到指定阶段,如在clean和package之间执行。生命周期阶段顺序执行,确保项目构建与发布的标准化。
|
4天前
|
自然语言处理 Java Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性。`bus-core-api(1.0-SNAPSHOT)`构建后,自动触发`app-web-ui`和`app-desktop-ui`的构建,两者均依赖bus-core-api的1.0快照版。 ``` 纯文本摘要: Maven自动化构建保证依赖项的稳定性:当`bus-core-api`的1.0-SNAPSHOT版本完成构建时,它会触发依赖它的`app-web-ui`和`app-desktop-ui`项目的构建,这两个项目都依赖`bus-core-api`的相同版本。
|
8天前
|
Java API Maven
Maven 自动化构建
**摘要 (Markdown 格式)**: Maven自动化构建确保依赖稳定性。当`bus-core-api` (1.0-SNAPSHOT) 构建后,依赖它的`app-web-ui`和`app-desktop-ui`(均依赖bus-core-api的1.0快照)会自动触发构建,保证与最新核心API兼容。
|
13天前
|
Java Maven Spring
如何使用Maven构建SpringBoot项目
如何使用Maven构建SpringBoot项目
|
9天前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括Clean(清除)、Default(构建)和Site(站点)三个阶段,用于项目构建与发布。Default生命周期含validate、compile、test、package、verify、install和deploy,确保代码编译、测试、打包和部署。Clean清除目标目录,Site生成项目文档。每个阶段由插件目标组成,如mvn clean package,先执行清理,再打包。
|
11天前
|
XML Java Maven
Maven 构建配置文件
Maven构建配置文件用于定制不同环境的构建,如生产与开发。配置在`pom.xml`的`profiles`中,可通过命令行、设置文件、环境变量等方式激活。配置文件分项目级、用户级和全局级。例如,`env.properties`为默认,`env.test.properties`和`env.prod.properties`代表测试和生产环境。激活配置文件可影响如数据库URL等参数。示例中用AntRun插件展示配置应用,但实际配置文件功能不限于此。
|
11天前
|
Java Maven
Maven 自动化构建
**Maven自动化构建确保依赖稳定性:** 当`bus-core-api`(1.0-SNAPSHOT)构建后,依赖它的`app-web-ui`和`app-desktop-ui`自动触发构建。`app-web-ui`与`app-desktop-ui`都引用`bus-core-api`的1.0快照版本,实现版本同步。
|
15天前
|
Java Maven
Maven 自动化构建
**Maven自动化构建确保依赖稳定性。当bus-core-api(1.0-SNAPSHOT)构建完成后,app-web-ui和app-desktop-ui这两个依赖它的项目自动触发构建,维持版本协调。**