maven从入门到精通 第二章 Maven中运行Java与Web项目

一 maven中运行Java项目

1.新建项目

main目录下

D:\maven_workspace\spaceVideo\pro01-maven-java\src\main\java\com\xyt\maven
 package com.xyt.maven;
  
public class Calculator {
    
    
  
  public int sum(int i, int j){
    
    
    return i + j;
  }
  
}

test目录下

D:\maven_workspace\spaceVideo\pro01-maven-java\src\test\java\com\xyt\maven
package com.xyt.maven;
  
import org.junit.Test;
import com.xyt.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);
    
  }
  
}

构建相关的命令,要在pom.xml目录下运行,操作哪个工程,就进入哪个工程的pom.xml

2. 运行项目

2.1查看当前目录

D:\maven_workspace\spaceVideo>dir
 驱动器 D 中的卷是 新加卷
 卷的序列号是 D4AF-9C80

 D:\maven_workspace\spaceVideo 的目录

2023/05/04  12:06    <DIR>          .
2023/05/04  11:38    <DIR>          ..
2023/05/04  12:06    <DIR>          pro01-maven-java
               0 个文件              0 字节
               3 个目录 118,766,297,088 可用字节

2.2 编译项目

编写main

D:\maven_workspace\spaceVideo>cd  pro01-maven-java

D:\maven_workspace\spaceVideo\pro01-maven-java>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.xyt.maven:pro01-maven-java >-------------------
[INFO] Building pro01-maven-java 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------

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

编写test目录下
编写成功

D:\maven_workspace\spaceVideo\pro01-maven-java>mvn test-compile
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.xyt.maven:pro01-maven-java >-------------------
[INFO] Building pro01-maven-java 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- resources:3.3.0:resources (default-resources) @ pro01-maven-java ---
[INFO] skip non existing resourceDirectory D:\maven_workspace\spaceVideo\pro01-maven-java\src\main\resources
[INFO]
[INFO] --- compiler:3.10.1:compile (default-compile) @ pro01-maven-java ---
[INFO] Nothing to compile - all classes are up to date

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

2.3测试当前项目

mvn test
[INFO] Running com.xyt.maven.CalculatorTest
输出测试的程序代码
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.038 s - in com.xyt.maven.CalculatorTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  15.463 s
[INFO] Finished at: 2023-05-04T14:41:58+08:00
[INFO] ------------------------------------------------------------------------

测试报告,放在这个目录里面
在这里插入图片描述

2.4 生成jar包

D:\maven_workspace\spaceVideo\pro01-maven-java>mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.xyt.maven:pro01-maven-java >-------------------
[INFO] Building pro01-maven-java 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] Building jar: D:\maven_workspace\spaceVideo\pro01-maven-java\target\pro01-maven-java-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.694 s
[INFO] Finished at: 2023-05-04T14:49:04+08:00
[INFO] ------------------------------------------------------------------------

问题:没有下到指定仓库,而是跑到默认仓库里面去了

2.5 迁移数据位置

[INFO] Installing D:\maven_workspace\spaceVideo\pro01-maven-java\pom.xml to C:\Users\20120\.m2\repository\com\xyt\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.pom
[INFO] Installing D:\maven_workspace\spaceVideo\pro01-maven-java\target\pro01-maven-java-1.0-SNAPSHOT.jar to C:\Users\20120\.m2\repository\com\xyt\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

确实被迁移到指定目录下了
在这里插入图片描述
安装的效果是将本地构建过程中生成的 jar 包存入 Maven 本地仓库。这个 jar 包在 Maven 仓库中的路径是根据它的坐标生成的

二 MAVEN中执行Web项目

在这里插入图片描述

1.配置项目

1.1 配置 web.html

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
    <servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.xyt.maven.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/helloServlet</url-pattern>
  </servlet-mapping>
</web-app>

1.2 配置index.jsp

<html>
<body>
<h2>Hello World!</h2>
<a href="helloServlet">Access Servlet</a>
</body>
</html>

1.3 注册servlet

  <servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.atguigu.maven.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/helloServlet</url-pattern>
  </servlet-mapping>

1.4 直接编译运行,发现配置失败

D:\maven_workspace\spaceVideo>mvn compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.060 s

原因:
缺少依赖jar包
在这里插入图片描述

1.5 推荐jar包查找网站

https://mvnrepository.com/

1.6 编译成功

D:\maven_workspace\spaceVideo\pro02-maven-web>mvn clean compile
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.xyt.maven:pro02-maven-web >--------------------
[INFO] Building pro02-maven-web Maven Webapp 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ war ]---------------------------------

1.7打包操作

D:\maven_workspace\spaceVideo\pro02-maven-web>mvn clean package
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< com.xyt.maven:pro02-maven-web >--------------------
[INFO] Building pro02-maven-web Maven Webapp 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ war ]---------------------------------

2. 让war包放在tomcat上跑起来

2.1 war 包复制到 Tomcat/webapps 目录下

在这里插入图片描述

2.2 启动tomcat

在这里插入图片描述

2.3 验证效果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CNMBZY/article/details/130485808