当前位置: 首页>前端>正文

maven打jar包含注释 maven打jar包指定main

在 Maven 工程中编写代码,打包jar


文章目录

  • 在 Maven 工程中编写代码,打包jar
  • 1. 主体程序
  • 2. 测试程序
  • 执行 Maven 的构建命令
  • 1. 要求
  • 2. 主程序和测试程序的编译操作
  • 3. 测试程序执行测试操作
  • 4. 清理操作
  • 5. 打包操作
  • 6. 安装操作
  • 最后:感谢



1. 主体程序

主体程序: 所谓的主体程序就是,我们主要被用来运行,执行的核心程序,是我们测试的程序的主要对象。一般都是在 main 文件夹下的。

所在目录是在:main 下的:E:\Maven_workspane\spaceVideo\pro01-maven-java\src\main\java\com\rainbowSea\maven

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_java,第1张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_02,第2张

默认Maven 会为我们创建一个名为 App.java 的类,我们不要它,把它删了,我们自己编写一个 Calculator 类,用来运行测试。如下

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_03,第3张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_jar_04,第4张

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

package com.rainbowSea.maven;


public class Calculator {
  
  public int sum(int i, int j){
    return i + j;
  }
  
}

2. 测试程序

测试程序: 字面意思就是,测试程序,用来测试我们的主体程序的编写是否存在错误,是否满足需求等等问题。一般是在 test 文件夹下的。

所在目录是在:E:\Maven_workspane\spaceVideo\pro01-maven-java\src\test\java\com\rainbowSea\maven

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_05,第5张

同样的在Maven 也是为我们自动创建了一个名为 AppTest.java 的文件,我们不要它,删除它,自己编写一个名为 CalculatorTest.java的测试类,字面上就可以明白,是对我们上面主体程序 Calculator 测试的。

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_06,第6张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven打jar包含注释_07,第7张

package com.rainbowSea.maven;


import org.junit.Test;
import com.rainbowSea.maven.Calculator;  // 注意:这里需要导入我们自己该项目下定义的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);
    System.out.println("test method have been called ,Hello Mavne ");
    
  }
  
}

执行 Maven 的构建命令

1. 要求

注意: 要想运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。如果没有在 pom.xml 所在的目录运行 Maven 的构建命令,这也是上面我们所说的:面向 pom.xml进行管理,编程。那么会看到下面的错误信息

比如:我们执行 mvn clean 测试看看

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven打jar包含注释_08,第8张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_09,第9张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_10,第10张

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

补充:

为什么:mvn -v 不需要进入到 含有 pom.xml 的文件夹路径下,

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

2. 主程序和测试程序的编译操作

主程序编译:mvn compile

测试程序编译:mvn test-compile

主体程序编译结果存放的目录:target/classes

测试程序编译结果存放的目录:target/test-classes

首先我们先进入到含有该 pom.xml 文件当中,进入 命令行窗口。如下:

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_jar_11,第11张

执行 :mvn compile 编译主程序:

主程序编译:mvn compile

mvn compile  # 编译主程序(main文件夹)下的程序,为 .class 字节码文件。

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_java_12,第12张

因为是第一次运行,所以Maven 需要安装需要的插件来,完成该任务:

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_13,第13张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_14,第14张

成功以后,我们去对应的目录中查看一下:

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_jar_15,第15张

主体程序编译结果存放的目录:target/classes

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_16,第16张

接下来我们编译test 当中的测试程序:CalculatorTest.java 生成对应的.class 字节码文件:

测试程序编译命令:mvn test-compile

同样是要在 pom.xml 文件,路径下才行:

mvn test-compile

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_17,第17张

测试程序编译结果存放的目录:target/test-classes

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_18,第18张

3. 测试程序执行测试操作

运行生成的CalculatorTest.class 测试程序:mvn test

mvn test

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_19,第19张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_20,第20张

测试的报告存放的目录:target/surefire-reports

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_21,第21张

4. 清理操作

mvn clean  # 删除 target 目录

效果:删除 target 目录,target 存放着,我们程序编译生成的 , .class 字节码文件。

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven打jar包含注释_22,第22张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_23,第23张

5. 打包操作

再执行打包操作之前,我们要先将,被我们 mvn clean 清除的 存放的 class.文件,生成回来。

执行

mvn mvn compile  # 编译主体程序
mvn test-compile # 编译测试程序

对程序进行一个打包:mvn package

因为我们这里编写的是Java程序,以及我们在其中pom.xml 当中的配置的是 jar 包的,打包方式:

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_24,第24张

所以打包的结果——> jar 包,存放的目录:target

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_25,第25张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_26,第26张

存放在:target 目录下。

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_27,第27张

6. 安装操作

安装操作:mvn install

mvn install

或者者是:

mvn clean install # 先进行一个 clean 中target 的清理,将前面生成的 .class 文件删除了。
# install 当中就包含了 生成.class 和 打包的操作,这么做的好处就是,可以安装的是我们最新的项目信息。

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

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_28,第28张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_测试程序_29,第29张

坐标信息如下:

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_jar_30,第30张

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

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

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_java_31,第31张

G:\devData\maven-repository\com\rainbowSea\maven\pro01-maven-java.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar

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

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_32,第32张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_java_33,第33张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven_34,第34张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_jar_35,第35张

maven打jar包含注释 maven打jar包指定main,maven打jar包含注释 maven打jar包指定main_maven打jar包含注释_36,第36张


https://www.xamrdz.com/web/2zw1944728.html

相关文章: