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

news2024/9/23 11:17:09

这里写自定义目录标题

  • 一 maven中运行Java项目
    • 1.新建项目
    • 2. 运行项目
      • 2.1查看当前目录
      • 2.2 编译项目
      • 2.3测试当前项目
      • 2.4 生成jar包
      • 2.5 迁移数据位置
  • 二 MAVEN中执行Web项目
    • 1.配置项目
      • 1.1 配置 web.html
      • 1.2 配置index.jsp
      • 1.3 注册servlet
      • 1.4 直接编译运行,发现配置失败
      • 1.5 推荐jar包查找网站
      • 1.6 编译成功
      • 1.7打包操作
    • 2. 让war包放在tomcat上跑起来
      • 2.1 war 包复制到 Tomcat/webapps 目录下
      • 2.2 启动tomcat
      • 2.3 验证效果

一 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 验证效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人工程学习和研究的结构性失衡

结论&#xff1a;无解&#xff0c;谁是那屈指可数的幸运者/(ㄒoㄒ)/~~ 供给&#xff1a;培养的机器人工程专业人才 需求&#xff1a;市场企业主体招聘的相关人才 不匹配&#xff0c;错配&#xff0c;导致供给无效。 机器人工程学习和研究的结构性失衡可能是由多种原因导致的…

Java学习-MySQL-备份

Java学习-MySQL-备份 为什么要备份&#xff1a; 1.保证重要的数据不丢失 2.数据转移 MySQL数据库备份的方式&#xff1a; 1.直接拷贝物理文件 2.在Sqlyog 这种可视化工具中导出 3.使用命令行导出&#xff0c;mysqldump&#xff0c;命令行使用 Sqlyog导出表 1.右键表 → 备…

智慧畜牧三维可视化,图扑数字孪生赋能现代农业

前言 "畜牧业是我国重要的农业产业之一&#xff0c;对于国民经济的发展和人民群众的生活具有重要的意义。智慧畜牧作为现代畜牧业的发展方向之一&#xff0c;将信息技术和现代管理相结合&#xff0c;提高养殖效率和品质&#xff0c;为行业的可持续发展注入新的动力。智慧…

PySpark基础入门(5):Spark 内核调度

目录 Spark 内核调度 DAG 内存迭代计算 Spark并行度 Spark任务调度流程 Spark 内核调度 Spark任务调度&#xff1a;如何组织任务去处理RDD中每个分区的数据&#xff0c;根据RDD的依赖关系构建DAG&#xff0c;基于DAG划分Stage&#xff0c;将每个Stage中的任务发到指定节…

盘点那些免费开源、无比精致的图标库,无论是设计还是开发,都很好用

之前分享过很多好看精致的图标库&#xff0c;这对日常设计和开发工作&#xff0c;都很方便&#xff0c;欢迎大家尝试。 css.gg 详细介绍&#xff1a;https://www.thosefree.com/css-gg 一套漂亮的纯 CSS 实现的免费开源图标库&#xff0c;700多个时尚漂亮的 css 图标库&…

本地开发项目删除原有git信息,上传到自己的git仓库

1. 删除原有git信息 进入到项目的目录&#xff0c;右键&#xff0c;选择 git Bash Here 输入 rm -rf .git 查看当前的远程信息&#xff1a;git remote -v 如果有远程信息 使用 git remote rm origin 删除 2.添加自己的远程信息 使用 git remote add origin https://xxxx.git…

分布式事务 --- Seata事务模式、高可用

一、事务模式 1.1、XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理&#xff08;DTP&#xff0c;Distributed Transaction Processing&#xff09;标准&#xff0c;XA 规范 描述了全局的TM与局部的RM之间的接口&#xff0c;几乎所有主流的数据库都对 XA 规范 提供了支持。…

三种常用的以太网端口链路类型:Access、Hybrid和Trunk

以太网是计算机网络中最常用的协议之一&#xff0c;它允许计算机在同一局域网上通信。在以太网中&#xff0c;交换机&#xff08;Switch&#xff09;是一个重要的组件&#xff0c;它们有许多不同的端口&#xff0c;用于连接不同的设备。为了管理和维护这些端口&#xff0c;有三…

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java是一门面向对象的编程语言&#xff0c;数组是其中的重要数据结构之一。在Java中&#xff0c;数组是一种固定长度、有序的数据结构&#xff0c;可以存储一组相同数据类型的元素。在本文中&#xff0c;我们将详细介绍Java数组在内存中的结构。 Java数组的定义 在Java中&…

美国访问学者博士后签证过期后应如何更新?

“美国访问学者类J签证过期后应如何更新&#xff1f;”有读者希望知识人网分享相关经验。今天我们来简单介绍下美国签证免面谈代传递服务&#xff0c;以及其申请条件和相关流程&#xff0c;希望能对大家有所帮助。 首先我们需要明确两个概念&#xff1a; DS2019表的有效期&…

第一章(四):Django框架的模板(DTL):变量、标签、模板过滤器、模板继承、配置模板文件(staticfiles)

系列文章目录 备注&#xff1a;这里是Django系列文章的所有文章的目录 第一章(一) : Django框架如何创建项目、创建应用、创建templates&#xff1b;如何启动django项目&#xff1b; 第一章(二)&#xff1a;Django框架的模式、路由、视图&#xff1b; 第一章(三)&#xff1a;D…

copilot平替tabnine解析

1.copilot 借着最近chatgpt大火的东风&#xff0c;copilot又重新火了一把。 什么是copilot&#xff1f;直接上wiki百科上的解释 GitHub Copilot是GitHub和OpenAI合作开发的一个人工智能工具&#xff0c;用户在使用Visual Studio Code、Microsoft Visual Studio、Vim、Cursor或…

Flask使用Flask-SQLAlchemy对数据库操作详解二(配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结)

前面接&#xff1a;Flask使用Flask-SQLAlchemy对数据库操作详解二&#xff08;配置、表与表之间一对一、多对一、多对多关系及增删改查参数和代码详细总结&#xff09; 文章目录 4.增删改查操作4.1添加1. 使用add()方法添加新数据2. 使用create()方法创建新数据 4.2 查询数据1.…

ADAS/AD笔记之特斯拉Autopilot-HW3.0系统

摘要&#xff1a; 目前国内一般直接将高速NOA成为“L2”&#xff1b;因此&#xff0c;复杂度更高的城区NOA&#xff0c;就自然的映射到了“L2”。 一、概述&#xff1a; 特斯拉Autopilot系统首创了NOA这种淡化脱手/脱眼/脱脑&#xff08;驾驶自动化程度&#xff09;逻辑的功能…

电脑系统怎么选?Win?MacOS?Linux?

马上要学编程了&#xff0c;我们要学什么操作系统呢&#xff1f;是MacOS&#xff0c;还是Windows&#xff0c;或者是Linux或者其他&#xff01;那我们今天就来说说MacOS系统和Windows系统的优缺点&#xff0c;也介绍一下其他的系统。让你心里有底&#xff01; 1、Windows 首先当…

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法3

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 创建并运行 CI/CD Pipeline访问 VMPipeline 的 Task 解读 创建并运行 CI/CD Pipeline 执行命令&#xff0c;生成公钥-私钥对。 $ ssh-keygen$ l…

贪心法——最小生成树

问题描述&#xff1a; 最小生成树Time Limit: 2000 MSMemory Limit: 5000 KB Description 给定n(n<500)个顶点,以及E(E<20000)条边&#xff0c;计算最小生成树的权值.Input 第一行输入T表示有T组数据。每组数据第一行输入n、E&#xff0c;分别表示顶点数和边数. 接下…

2023年度国家自然科学基金项目申请初审结果公布~

2023年4月28日&#xff0c;国家自然科学基金委员会发布了《关于公布2023年度国家自然科学基金项目申请初审结果的通告》&#xff0c;2023年度国家自然科学基金项目申请初审结果公布&#xff01;2023年度项目申请集中接收期间&#xff0c;自然科学基金委共接收各类型项目申请304…

8年测试经验分享,15K的测试工程师需要掌握那些知识?

软件测试行业是随着软件产业的发展而兴起的一个重要领域&#xff0c;目前处于快速发展阶段。以下是软件测试行业的现状&#xff1a; 人才需求增长&#xff1a;随着互联网、移动互联网、物联网等新技术的不断发展&#xff0c;软件测试人才需求呈现出快速增长的趋势。越来越多的…

找高清无水印视频素材,就上这9个网站。

推荐几个我的视频素材库&#xff0c;有免费、收费、商用&#xff0c;希望对大家有帮助&#xff01; 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库可以找到设计、办公、图片、视频、音频等各种素材。视频素材就有上千个&#xff0c;全部都很高清&…