【Maven】命令行操作(下)

简介: 【Maven】命令行操作(下)

2、清理操作


mvn clean

效果:删除target目录


3、编译操作


主程序编译:mvn compile

测试程序编译:mvn test-compile

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

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


4、测试操作


mvn test

测试的报告会存放在target/surefire-reports目录下


5、打包操作


mvn package

打包的结果会存放在target目录下


6、安装操作


mvn install

[INFO] Installing D:\maven-workspace\space201026\pro01-maven-java\target\pro01-maven-java-1.0-SNAPSHOT.jar to D:\maven-rep1026\com\atguigu\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.jar
[INFO] Installing D:\maven-workspace\space201026\pro01-maven-java\pom.xml to D:\maven-rep1026\com\atguigu\maven\pro01-maven-java\1.0-SNAPSHOT\pro01-maven-java-1.0-SNAPSHOT.pom

安装的效果是将本地构建过程中生成的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文件即可,它们是名字发生了改变,本质上是同一个文件。


实验四:创建Maven版的Web工程


1、说明


使用mvn archetype:generate命令生成Web工程时,需要使用一个专门的archetype。这个专门生成Web工程骨架的archetype可以参照官网看到它的用法:

0a2653c851af460fa595bd959398a8f1.png

参数archetypeGroupId、archetypeArtifactId、archetypeVersion用来指定现在使用的maven-archetype-webapp的坐标。


2、操作


注意:如果在上一个工程的目录下执行mvn archetype:generate命令,那么Maven会报错:不能在一个非pom的工程下再创建其他工程。所以不要再刚才创建的工程里再创建新的工程,请回到工作空间根目录来操作。

然后运行生成工程的命令:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

下面的操作按照提示执行:

Define value for property ‘groupId’: com.atguigu.maven

Define value for property ‘artifactId’: pro02-maven-web

Define value for property ‘version’ 1.0-SNAPSHOT: :【直接回车,使用默认值】

Define value for property ‘package’ com.atguigu.maven: :【直接回车,使用默认值】

Confirm properties configuration:

groupId: com.atguigu.maven

artifactId: pro02-maven-web

version: 1.0-SNAPSHOT

package: com.atguigu.maven

Y: :【直接回车,表示确认】


3、生成的pom.xml


确认打包的方式是war包形式

<packaging>war</packaging>


4、生成的Web工程的目录结构


image.png

webapp目录下有index.jsp

WEB-INF目录下有web.xml


5、创建Servlet


①在main目录下创建java目录


image.png


②在java目录下创建Servlet类所在的包的目录


image.png


③在包下创建Servlet类


package com.atguigu.maven;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
public class HelloServlet extends HttpServlet{
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getWriter().write("hello maven web");
  }
}


④在web.xml中注册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>


6、在index.jsp页面编写超链接


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

JSP全称是Java Server Page,和Thymeleaf一样,是服务器端页面渲染技术。这里我们不必关心JSP语法细节,编写一个简单的超链接HTML标签即可。


7、编译


执行mvn compile命令出错:

程序包javax.servlet.http不存在

程序包javax.servlet不存在

找不到符号

符号: 类 HttpServlet

……

上面的错误信息说明:我们的Web工程用到了HttpServlet这个类,而HttpServlet这个类属于servlet-api.jar这个jar包。此时我们说,Web工程需要依赖servlet-api.jar包。


image.png0a2653c851af460fa595bd959398a8f1.png0eacb84100b54626af849e6b562bf92a.png


8、配置对servlet-api.jar包的依赖


对于不知道详细信息的依赖可以mvnrepository.com/网站查询。使用关键词搜…

比如,我们找到的servlet-api的依赖信息:

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

这样就可以把上面的信息加入pom.xml。重新执行mvn compile命令。


9、将Web工程打包为war包


运行mvn package命令,生成war包的位置如下图所示:


0a2653c851af460fa595bd959398a8f1.png


10、将war包部署到Tomcat上运行


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

0eacb84100b54626af849e6b562bf92a.png

启动Tomcat:

image.png

2e9b90b2ca334476abebe75bafe6eeaa.png


通过浏览器尝试访问:http://localhost:8080/pro02-maven-web/index.jsp

🌹写在最后💖: 路漫漫其修远兮,吾将上下而求索!伙伴们,再见!🌹🌹🌹


相关文章
|
2月前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
231 80
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
5月前
|
Java Maven
Maven命令行参数详解
Maven命令行参数详解
158 0
|
5月前
|
缓存 Java Maven
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
70 0
|
6月前
|
Java Maven
Maven【4】(继承)(命令行操作)
Maven【4】(继承)(命令行操作)
40 1
|
6月前
|
Java Maven
Maven【3】( 依赖的范围,传递性和依赖的排除)(命令行操作)
Maven【3】( 依赖的范围,传递性和依赖的排除)(命令行操作)
61 0
|
6月前
|
Java Maven
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
56 0
|
6月前
|
Java Maven
Maven【1】(命令行操作)
Maven【1】(命令行操作)
56 0
|
存储 JavaScript Java
Maven基础学习---3、Maven的使用(命令行)
Maven基础学习---3、Maven的使用(命令行)
|
6月前
|
存储 JavaScript Java
【Maven从入门到如土】快速使用 Maven:命令行环境
【Maven从入门到如土】快速使用 Maven:命令行环境
98 0
|
Java Apache Maven
利用Maven工程命令行学习实操<第三课>(二)
利用Maven工程命令行学习实操<第三课>(二)
144 0