maven

IDEA

概述

DEA全称IntelliJ IDEA,是用于java语言开发的集成环境IDE,也可用于其他语言,IntelliJ在业界被公认为最好用的java
开发工具之一,尤其在智能代码助手,代码自动提示、重构、J2EE支持、Ant、Junit、CVS整合、代码审查、创新
的GUI设计等方面的功能可以说是超常的。

DEBUG:

1.行断点
2.可直接详细设置的断点。shift+左键
3.方法断点。菱形的。在接口的方法中打一个方法断点,则debug时会直接跳转至具体的实现类中。
4.异常断点。闪电形。ctrl+shift+F8–展开Java Exception Breakpoints,点击加号 ,添加Java Exception Breakpoint。如:NullPointerException,把它勾选上,当我们的程序触发空指针异常时,断点就会停在那一行
5.字段断点。眼睛形。读写全监控。如在age这个成员变量处打断点,则默认当程序改变age的值时,会停顿在该处。右键眼睛形断点,勾选watch中的“Field access”,则可以在“读”的过程中也停顿,如当getAge()调用age时,会停顿。

创建Module时的language level:

在这里插入图片描述
jetbrains的的用户手册中有如下说明:
Project language level
Language level defines coding assistance features that the editor provides. Language level can differ from your project SDK. For example, you can use the JDK 9 and set the language level to 8. This makes the bytecode compatible with Java 8, while inspections make sure you don’t use constructs from Java 9.

Language level also affects compilation. If you don’t manually configure the target bytecode version for your compiler (Settings/Preferences | Build, Execution, Deployment | Compiler | Java Compiler), it will be the same as the project language level.

For each module, you can configure its own language level.

In some cases, you can select the language level that allows you to use preview features as described in Java Language Specification. Refer to Preview features policy for additional information about preview features support in IntelliJ IDEA.
如:安装jdk8,那么你可以选择Language level为8或8以下的,但是不可以选择8以上的。安装jkd8,选择Language level为7,则会按照jdk7的规则来

Maven–概述

1、maven的概念

擅长管理大型项目
自动管理你需要的jar包
自动进行下载我们需要的jar包。

Maven是项目进行模型抽象,充分运用面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

说白了: Maven是由Apache开发的一个工具用来管理java项目, 依赖管理(jar包的管理),项目构建。

jar包:java rar.
war包: web rar.

2、Maven的作用

依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

maven对工程分模块构建,提高开发效率。

3、Maven的概念模型

项目对象模型(Project Object Model),POM对象模型,每个maven刚工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包的方式。

依赖管理系统(基础核心),maven通过坐标对项目工程所依赖的jar包统一规范管理。

maven定义一套项目生命周期。清理、初始化、编译、测测试、报告、打包、部署、站点生成。

一组标准集合,maven工程有自己标准的工程目录结构、定义坐标有标准。
maven管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。

4、Maven的仓库

4.1 Maven的仓库

本地仓库: 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。

中央仓库: 就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:[https://repo1.maven.org/maven2/]

远程仓库(私服):私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven须要下载构件的时候。它从私服请求,假设私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。

在这里插入图片描述

4.2 仓库中存放的内容

1Maven自身运行所需要的插件
2第三方框架(spring/mybatis/springmvc)和工具类的jar包
3我们自己开发的maven项目安装后的jar包

5、maven的坐标

Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。在Maven中,不论什么一个依赖、插件或者项目构建的输出, 都能够称之为构件。

为了能自动化的解析任何一个Java构件. Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。
在这里插入图片描述
包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下:
groupId:项目组织唯一的标识符,实际对应JAVA的包的结构
(一般写公司的组织名称 例如:com.han,com.alibaba)
artifactId: 项目的名称
version:定义项目的当前版本
例如:要引入druid的jar包,只需要在pom.xml配置文件中配置引入druid的坐标即可:
在这里插入图片描述

6、配置本地maven

在这里插入图片描述
在这里插入图片描述
4 配置环境变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再增加一个镜像源:

<!-- junit镜像地址 -->
<mirror>
<id>junit</id>
<name>junit Address/</name>
<url>http://jcenter.bintray.com/</url>
<mirrorOf>central</mirrorOf>
</mirror>

在这里插入图片描述
在这里插入图片描述
8 在IDEA中配置maven
在这里插入图片描述
进入settings中修改如下三处即可:
在这里插入图片描述

7、pom.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

IDEA创建maven工程

1.创建空的工程

在这里插入图片描述
在这里插入图片描述

2.创建跳过骨架的java项目

2.1 how

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上图注意location:Module模块day0901要放在刚刚创建的空项目mymaven里面。同时注意location不能有中文不能有空格这很重要。
在这里插入图片描述上图看目录:main/java是存放代码的,resources存放配置文件,test/java存放测试用例,pom.xml是当前maven项目的配置文件
在这里插入图片描述
要勾选允许自动导入。

2.2创建Java代码

在这里插入图片描述

package mavenlearning;

public class ProductService {

    public void add(){
        System.out.println("add");
    }
    public void del(){
        System.out.println("del");
        int i = 1/0;
    }
    public void update(){ System.out.println("update更新更新"); }
    public void findAll(){
        System.out.println("findAll");
    }

}

2.3生成测试代码

在java文件夹下创建包和类以后,怎么写测试用例呢?有以下方法:

方法1

鼠标点中类名,然后alt+回车键选择Create Test即可
在这里插入图片描述

方法2

右键Generate–Test–
在这里插入图片描述
–选择JUnit4并且在Member处勾选上需要测试的方法–在这里插入图片描述
–报错(为何iunit标红,因为没有对junit进行导包),以前导包是先把jar包导进去然后add,现在只需要在配置文件pom.xml中配一下坐标就行–
在这里插入图片描述

2.4导入依赖

–打开pom.xml添加如下内容–

    <dependencies>
<!--        引入junit,坐标我不知道怎么办?-->
<!--        百度搜搜索maven junit-->
<!--        进入Maven Repository:junit网站-->
<!--        选择第一个-->
<!--        选择使用最多的这个-->
<!--        复制它的maven坐标到这里-->
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

    </dependencies>


–如何确认生效了呢?打开IDEA右侧栏目中的maven,看到有Dependencies看到有junit就说明生效了。如果想更改版本,直接更改version部分即可,如:将version部分改成4.11,则版本对应也更改为4.11了。
在这里插入图片描述
现在再看测试用例处就已经不报错了
在这里插入图片描述

2.5.进行测试

可以一个个点击行标旁的三角按钮,但是这样很麻烦,于是先点击IDEA右侧栏目的maven,然后点击Lifecycle–test就自动帮你完成所有测试。但是注意这样测试不支持中文,如:输出的内容中含有中文“update测试测试”,则结果会在中文部分显示乱码“update���Բ���”
在这里插入图片描述
在这里插入图片描述
如果测试时发现错误如何寻找错误?
一般在错误报告中你认识的类(你自己写的类)的地方找就可以了。下图中错误就在我们写的类ProductService中的第10行(有一个1/0)和ProductServiceTest类中的第15行(因为它调用了含有1/0的方法)
在这里插入图片描述

3.创建有骨架的java项目

1.File – new --Module–Maven–设置SDK–勾选create from archetype–选择下图所选的org.ap…–next
在这里插入图片描述

2.Artifact Coordinates下图展示的是默认的(将来就会发布到org那里去),你也可以自己更改。注意:location不允许有中文或空格!
然后点击next–
在这里插入图片描述
3.设置一下然后点击finish即可
在这里插入图片描述
4.
在这里插入图片描述
有骨架的(day0902)的java项目src/main目录下缺少resources,我们可以自己创建一个。–对main右键new–directory–输入resources–回车即可。
有骨架的java项目帮我们自动生成了App类和AppTest类,但这没啥用,我们可以删除它。

5.day0902中的pom.xml 内容如下。会有一些多余的配置,删除即可

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <!--坐标-->
  <groupId>org.example</groupId>
  <artifactId>day0902</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>day0902</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
<!-- 删除上面两行内容 -->


<!--  这里可以看到编译环境是jdk1.7-->
<!--  也可以再去settings中搜索java compiler看一下,如果不配jdk(如day0901)则默认是1.5-->
<!--  此处可以改成1.8吗?直接该是不会生效的,你改了以后再去settings中看一下就知道还是1.7,没有改变-->
<!--  如果你要改版本为1.8也是可以的,把下面的5行删除,然后添加本xml中的最后一段代码来修改即可-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

<!--  导入依赖-->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

<!--构建插件。我们现在用不到,可以全部删除这段-->
<!--  <build>-->
<!--    <pluginManagement>&lt;!&ndash; lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) &ndash;&gt;-->
<!--      <plugins>-->
<!--        &lt;!&ndash; clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-clean-plugin</artifactId>-->
<!--          <version>3.1.0</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-resources-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-compiler-plugin</artifactId>-->
<!--          <version>3.8.0</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-surefire-plugin</artifactId>-->
<!--          <version>2.22.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-jar-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-install-plugin</artifactId>-->
<!--          <version>2.5.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-deploy-plugin</artifactId>-->
<!--          <version>2.8.2</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-site-plugin</artifactId>-->
<!--          <version>3.7.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-project-info-reports-plugin</artifactId>-->
<!--          <version>3.0.0</version>-->
<!--        </plugin>-->
<!--      </plugins>-->
<!--    </pluginManagement>-->
<!--  </build>-->

    <build>
        <plugins>
             <!--java编译插件。用它可以修改版本号。再看settings就已经改成1.8了-->
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>


在这里插入图片描述

4.创建有骨架的web工程

1.File – new --Module–Maven–设置SDK–勾选create from archetype–选择下图所选的org.ap…–next

在这里插入图片描述

2.Artifact Coordinates下图展示的是默认的(将来就会发布到org那里去),你也可以自己更改。注意:location不允许有中文或空格!
然后点击next–
在这里插入图片描述

3.设置一下然后点击finish即可
在这里插入图片描述

4.对比标准web工程目录结构,观察可知我们这个没有main/java和main/resources,也没有test。
–对main右键new–directory–输入java–回车。再–对main右键new–directory–输入resources–回车,即可创建这两个东西。
接着–对src右键new–directory–输入test\java–回车,即创建test。

标准web工程目录结构:
在这里插入图片描述

我们的:
在这里插入图片描述
在这里插入图片描述
5.pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
<!--当前项目的坐标-->
  <groupId>org.example</groupId>
  <artifactId>day0903</artifactId>
  <version>1.0-SNAPSHOT</version>
<!-- 打包方式:war包-web项目的压缩包-->
  <packaging>war</packaging>

<!--  下面这行可以更改名字-->
  <name>day0903 Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
<!--  上面两行也不需要,将其删除-->

<!--  环境为1.7,不改也行-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
<!--导入依赖-->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    
    <!--  idea文件右键创建New没有Create New Servlet的解决办法-->
    <!--  https://blog.csdn.net/weixin_43883917/article/details/111152192-->
    <!-- 先看pom.xml 文件中有没有相关的依赖,需要在dependencies中添加Tomcat中关于jsp和servlet的jar。-->
    <!--  添加依赖1和2,我添加后就解决了这个问题。我的版本不是“Create New Servlet”,而是“Servlet”-->

    <!--依赖1 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
      这行必须要写provided,因为tomcat里面就有servlet,你自己这里也有一个servlet的jar包,两者冲突了,provided表明该包只在编译和测试的时候用,所以,当启动tomcat的时候,这里的包无效,使用的是tomcat里的包,就不会冲突了。
    </dependency>

    <!--依赖2 -->
<!--    <dependency>-->
<!--      <groupId>javax.servlet.jsp</groupId>-->
<!--      <artifactId>jsp-api</artifactId>-->
<!--      <version>2.1</version>-->
<!--      <scope>provided</scope>-->
<!--    </dependency>-->
  </dependencies>


<!--  下面这部分我们暂时用不到,可以先删除。下面的&lt;!&ndash;实际上是注释符号,因为外面还有一层注释所以先变成这样。-->

<!--  <build>-->
<!--    &lt;!&ndash;finalName用于IDEA右侧栏目打开Maven,打开day0903的Lifecycle里面的package,会生成一个finalName.war-->
<!--    包,如这里就会生成day0903.war。如果已经生成day0903.war之后再改变finalName,会生成一个新的finalName.war。原来的-->
<!--    day0903.war仍然存在。如果没有finalName,会生成一个包名为day0903-1.0-SNAPSHOT的war包-->
<!--     &ndash;&gt;-->
<!--    <finalName>day0903</finalName>-->


<!--下面这样写就是动态的了,package时会生成artifactId.war。artifactId是上面坐标处的值-->
<!--        <finalName>${project.artifactId}</finalName>-->
  

<!--    <pluginManagement>&lt;!&ndash; lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) &ndash;&gt;-->
<!--      <plugins>-->
<!--        <plugin>-->
<!--          <artifactId>maven-clean-plugin</artifactId>-->
<!--          <version>3.1.0</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-resources-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-compiler-plugin</artifactId>-->
<!--          <version>3.8.0</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-surefire-plugin</artifactId>-->
<!--          <version>2.22.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-war-plugin</artifactId>-->
<!--          <version>3.2.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-install-plugin</artifactId>-->
<!--          <version>2.5.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-deploy-plugin</artifactId>-->
<!--          <version>2.8.2</version>-->
<!--        </plugin>-->
<!--      </plugins>-->
<!--    </pluginManagement>-->
<!--  </build>-->

<!--配置插件-->
      <build>
        <plugins>
          <!--配置Tomcat插件-->
          <!--因为web项目最终跑在web服务器中,所以需要配置web服务器(tomcat只是其中一个)-->
          <plugin>
            <!--Tomcat坐标-->
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
              <!--配置端口号-->
              <port>80</port>
              <!--配置项目路径-->
              <path>/day0903</path>
               <!--很多人的项目路径设置为“/”,注意:假如你当前项目中只有一个模块,那可以这样设置,否则还是要写上不同名字。-->
            </configuration>
          </plugin>
        </plugins>
      </build>
      <!--点击IDEA右侧栏目Maven里的刷新按钮就会在plugins中看到Tomcat7-->
      <!--  如何让启动呢?启动之前要先准备一个配置的文件。在main\webapp\WER-INF中有默认的index.jip,我不要,把它删掉。
      新建一个,对webapp右键new-HTML File,输入index,在index.html中的body中输入<h1>这是我的第一个mavne web项目</h1>。
      然在IDEA的栏目中,绿色锤子的旁边有一个Run/Debug configurations,打开它以后删除之前的东西,然后那个地方就会显示Add Configuration...
      接着在IDEA右侧栏目Maven中找到Tomcat7:run,右键Run 'day0903[tomcat7:run]'。如果你双击tamcat7:run也可以运行,结果显示如下:
      [INFO] Running war on http://localhost:80/day0903。这个80是你子啊pom中配的端口,day0903是你在pom中配的项目路径,点击这个网
      址也是可以看到显示的内容为“这是我的mavne web项目”。但是双击和右键选择Run 'day0903[tomcat7:run]'还是不一样的。双击的话,要退出就点
      击绿色锤子在的那一栏中的红色方块即可,如果不退出就又双击了,就会同时存在两个tomcat7,他们两个都使用80端口的话就冲突了。但如果是右键的话,
      绿色锤子旁的Add Configuration...就会显示“day0903[tomcat7:run]”,这时可以通过这个它旁边的图标来操作了,点击绿的返回箭头会出现
      stop and rerun选项,这就可以将当前的tomcat关闭,重开一个tomcat,避免冲突,因此建议右键而不要双击。
      -->
</project>

6.准备index.html
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1>这是我的mavne web项目</h1>

</body>
</html>

7.启动tomcat(详细看5中的注释部分)
在这里插入图片描述

简化启动tomcat(详细看5中的注释部分)
在这里插入图片描述
8.创建servlet

在index.html中写入如下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <h1>这是我的mavne web项目</h1>
  <h3><a href="demo01">访问servlet</a></h3>
  <!--但是我现在并没有这个servlet,所以到main/java右键new--Servlet,配置如下图所示-->


</body>
</html>

在这里插入图片描述
然后就能得到
在这里插入图片描述
Demo01Servlet.java的内容如下:

package mavenlearning.controller;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "demo01", value = "/demo01")
public class Demo01servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().println("======Demo01Servlet doPost ... ...");
    }
//    点击绿色锤子栏目的绿色三角启动它
//    得到如下内容,点进去
//    [INFO] Running war on http://localhost:80/day0903
//    点击网址如下图所示


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

在这里插入图片描述
访问servlet得到如下内容:
在这里插入图片描述

5.maven的常用指令

在这里插入图片描述
下载源码右侧的加号:个别情况下,在Project试图中对项目右键–Load/Unload Modules–Unload以后,想把它再弄回来,但是你发现maven视图中已经没有了,此时你可以点击加号,把项目的pom.xml文件加回来,那么对应的项目就会回到maven视图中。

下面说的命令都是maven视图中,具体项目的Lifecycle里面的命令

clean:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

compile

把java代码编译成class文件。(生成target目录,里面有class文件)
在这里插入图片描述

test

测试命令:执行src/test/java下junit的测试用例
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述

package

mvn package 打包项目
对java项目打包:
在这里插入图片描述
对web项目打包:在这里插入图片描述
在这里插入图片描述
改名的事详见4.创建有骨架的web工程中的5.pom.xml

install

把项目打成jar或者war包仍到仓库中去,扔到什么地方呢?由你的坐标决定。如我的day0901的pom.xml中的坐标如下图:
在这里插入图片描述

首级目录org,二级目录example,项目名day0901,版本号1.0
则我去我电脑当时放仓库的地方按照这个目录就能找到了jar包或者war包了。
D:\Development\maven\Maven_Repository\org\example\day0901\1.0-SNAPSHOT

注意:clean会清除target目录,但是不会清除install时生成的目录里的东西,如果我们想要清除只能到目录里面删除day0901文件。

在这里插入图片描述
在这里插入图片描述

6.maven插件

在这里插入图片描述

6.1jdk编译版本的插件

关于改版本号(要用java的编译插件)的内容详见3.创建有骨架的java项目中的5.day0902中的pom.xml

在这里插入图片描述
在这里插入图片描述

 <!--java编译插件。用它可以修改版本号。再看settings就已经改成1.8了-->
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

6.2tomcat7服务端的插件

详见4.创建有骨架的web工程中的5.pom.xml

配置tomcat插件:

<!--配置Tomcat插件-->
          <!--因为web项目最终跑在web服务器中,所以需要配置web服务器(tomcat只是其中一个)-->
          <plugin>
            <!--Tomcat坐标-->
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
              <!--配置端口号-->
              <port>80</port>
              <!--配置项目路径-->
              <path>/day0903</path>
              <!--很多人的项目路径设置为“/”,注意:假如你当前项目中只有一个模块,那可以这样设置,否则还是要写上不同名字。-->
            </configuration>
          </plugin>

运行tomcat插件:
在这里插入图片描述
在这里插入图片描述

7.导入依赖

7.1导入junit依赖

在这里插入图片描述
在mavne视图中点击test就可以测了。

7.2导入servlet依赖

详见4.创建有骨架的web工程中的5.pom.xml
在这里插入图片描述
新建一个servlet可能会报错,因为你没有导入相关依赖
在这里插入图片描述
在这里插入图片描述

7.3依赖范围

导入依赖时,scope里面的值:
在这里插入图片描述
test只在测试时有效,也就是说运行时不会打成war包扔进默认是compile

8.继承

8.1原理

在这里插入图片描述

8.2创建父模块

父模块: 不需要打jar包了,所以只用创建跳过骨架的java项目即可。
在这里插入图片描述
在这里插入图片描述
父模块是最顶层的项目所以Parent处选择None
在这里插入图片描述
finish就创建好了,因为当前的父工程的目的只有一个,就是让别人继承他,所以我们可以把src文件夹删除,因为我们不需要写java代码。
在这里插入图片描述
pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
<!--父工程的坐标-->
    <groupId>org.example</groupId>
    <artifactId>mavenlearning_parent</artifactId>
    <version>1.0-SNAPSHOT</version>
<!--指定父工程的打包类型-->
<!--如果你是父工程的话就不用jar包或者war包了,因为你连java代码都没有。只用指定为pom文件即可-->
    <packaging>pom</packaging>


<!--    导入依赖,百度搜索“maven 想要导入的依赖名字”,选择使用最多的版本即可-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>

    </dependencies>
</project>

8.3创建第一个子模块(有骨架的java项目)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
finish就创建好了
在这里插入图片描述
观察目录,发现少一个resources,我们自己创建一个。

在这里插入图片描述
在这里插入图片描述
现在就有了
在这里插入图片描述
子模块01的pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--指定父模块-->
<!--我创建子模块的时候只是短暂出现了parent标签,然后就立刻消失了,所以我手动添加了parent标签信息-->
  <parent>
    <artifactId>mavenlearning_parent</artifactId>
    <groupId>org.example</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>

  <artifactId>zi_01_java</artifactId>



<!--  视频说以下内容我们用不到,把他全都注释掉-->
<!--  <name>zi_01_java</name>-->
<!--  &lt;!&ndash; FIXME change it to the project's website &ndash;&gt;-->
<!--  <url>http://www.example.com</url>-->

<!--用于指定该子模块的jdk为1.7-->
<!--  <properties>-->
<!--    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>-->
<!--    <maven.compiler.source>1.7</maven.compiler.source>-->
<!--    <maven.compiler.target>1.7</maven.compiler.target>-->
<!--  </properties>-->

<!--  <dependencies>-->
<!--    <dependency>-->
<!--      <groupId>junit</groupId>-->
<!--      <artifactId>junit</artifactId>-->
<!--      <version>4.11</version>-->
<!--      <scope>test</scope>-->
<!--    </dependency>-->
<!--  </dependencies>-->

<!--  <build>-->
<!--    <pluginManagement>&lt;!&ndash; lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) &ndash;&gt;-->
<!--      <plugins>-->
<!--        &lt;!&ndash; clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-clean-plugin</artifactId>-->
<!--          <version>3.1.0</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-resources-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-compiler-plugin</artifactId>-->
<!--          <version>3.8.0</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-surefire-plugin</artifactId>-->
<!--          <version>2.22.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-jar-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-install-plugin</artifactId>-->
<!--          <version>2.5.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-deploy-plugin</artifactId>-->
<!--          <version>2.8.2</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-site-plugin</artifactId>-->
<!--          <version>3.7.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-project-info-reports-plugin</artifactId>-->
<!--          <version>3.0.0</version>-->
<!--        </plugin>-->
<!--      </plugins>-->
<!--    </pluginManagement>-->
<!--  </build>-->
</project>

maven视图中刷新一下可以看到子模块已经继承了父模块的依赖了。
在这里插入图片描述

8.4创建第二个子模块(有骨架的web工程)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

finish就创建好子模块了

子模块02 的pom中也是先短暂出现parent标签如下:
在这里插入图片描述
然后又迅速变成了如下这样:
在这里插入图片描述
于是我只能手动添加parent标签
我把改过以后的pom放到这:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.example</groupId>
    <artifactId>mavenlearning_parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>


  <artifactId>zi_02_web</artifactId>

<!--  打包方式-->
  <packaging>war</packaging>

  <name>zi_02_web </name>
<!--  &lt;!&ndash; FIXME change it to the project's website &ndash;&gt;-->
<!--  <url>http://www.example.com</url>-->

<!--这里想要的话也可以留着,不想要就不用它,我们用tomcat7,用jdk插件-->
<!--  <properties>-->
<!--    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>-->
<!--    <maven.compiler.source>1.7</maven.compiler.source>-->
<!--    <maven.compiler.target>1.7</maven.compiler.target>-->
<!--  </properties>-->

<!--  <dependencies>-->
<!--    <dependency>-->
<!--      <groupId>junit</groupId>-->
<!--      <artifactId>junit</artifactId>-->
<!--      <version>4.11</version>-->
<!--      <scope>test</scope>-->
<!--    </dependency>-->
<!--  </dependencies>-->

<!--  <build>-->
<!--    <finalName>zi_02_web</finalName>-->
<!--    <pluginManagement>&lt;!&ndash; lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) &ndash;&gt;-->
<!--      <plugins>-->
<!--        <plugin>-->
<!--          <artifactId>maven-clean-plugin</artifactId>-->
<!--          <version>3.1.0</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-resources-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-compiler-plugin</artifactId>-->
<!--          <version>3.8.0</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-surefire-plugin</artifactId>-->
<!--          <version>2.22.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-war-plugin</artifactId>-->
<!--          <version>3.2.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-install-plugin</artifactId>-->
<!--          <version>2.5.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-deploy-plugin</artifactId>-->
<!--          <version>2.8.2</version>-->
<!--        </plugin>-->
<!--      </plugins>-->
<!--    </pluginManagement>-->
<!--  </build>-->
</project>

8.5版本管理

选中版本号,按:ctrl+alt+v
在这里插入图片描述点击ok
在这里插入图片描述
这样dependency中的version就在properties中被统一管理了。方便后期更改jar包和插件的版本。(相当于在properties中创建了我们自定义的标签${…})
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
<!--父工程的坐标-->
    <groupId>org.example</groupId>
    <artifactId>mavenlearning_parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <modules>
        <module>zi_01_java</module>
        <module>zi_02_web</module>
    </modules>
    
    <properties>
<!-- 创建我们自定义的属性标签-->
<!-- 标签名就是属性名,标签值就是属性值。引用方式:${junit.version}。${mysql-connector-java.version}-->
        <junit.version>4.12</junit.version>
        <mysql-connector-java.version>5.1.38</mysql-connector-java.version>
    </properties>
    <!--指定父工程的打包类型-->
<!--如果你是父工程的话就不用jar包或者war包了,因为你连java代码都没有。只用指定为pom文件即可-->
    <packaging>pom</packaging>


<!--    导入依赖,百度搜索“maven 想要导入的依赖名字”,选择使用最多的版本即可-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector-java.version}</version>
        </dependency>

    </dependencies>
</project>

8.6依赖管理

依赖管理:子工程需要用到父工程的哪个依赖就给子工程哪个依赖,用不到就不用给子工程。

将父工程的pom文件中的dependencies放入dependencyManagement中可以实现依赖管理。此时刷新maven视图发现子工程没有继承父工程中的依赖。
在这里插入图片描述
此时如果子工程需要用到父工程的哪个依赖就到子工程的pom文件中添加相应的dependencies(不用写版本号,直接继承的就是父工程的版本号,如果在子工程中写版本号,则该子工程就用的是自己标明的版本号)
在这里插入图片描述

8.7排除依赖

在这里插入图片描述

在zi_02_web的pom中添加如下内容:

    <dependency>
      <groupId>org.example</groupId>
      <artifactId>zi_01_java</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>

就相当于模块zi_02_web 依赖于模块zi_01_java,而zi_01_java中有mysql(5.1.36版本)依赖,所以zi_02_web也间接有mysql依赖,但是注意,我们从maven视图中看到zi_02_web的mysql依赖此时是5.1.38版本,是父工程的mysql版本:
在这里插入图片描述
zi_02_web 依赖于模块zi_01_java,但是zi_02_web不想用zi_01_java的MySQL依赖,于是就排除依赖,在zi_02_web的pom中添加如下内容:

  <dependencies>
    <dependency>
      <groupId>org.example</groupId>
      <artifactId>zi_01_java</artifactId>
      <version>1.0-SNAPSHOT</version>
      <!--  排除模块1中的mysql依赖-->
      <exclusions>
        <exclusion>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

再次查看maven视图如下:

在这里插入图片描述

9. 聚合

在父工程的pom中添加:

<!--聚合:父工程管理子模块的发布打包。为了快速构建一个项目的多个模块-->
    <modules>
        <module>zi_01_java</module>
        <module>zi_02_web</module>
    </modules>

这样对父工程进行发布打包时,会自动对子模块进行发布打包。

继承是为了复用,聚合是为了管理。

然后再maven视图中对父工程进行install即可打包成功。但是我install时出现了如下问题:
在这里插入图片描述
报错:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project zi_01_java: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?

我查了一下,大部分人的解决办法就是把“test”禁掉,跳过“test”。我尝试了这个方法,install时成功了。但我觉得这个方法治标不治本。后来请教了别人,发现我应该在父工程的pom中添加如下内容:

<build>
        <plugins>
            <!-- 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

并且在下图中将Bundled (Maven 3)改成我自己D盘中的maven在这里插入图片描述
并且将下图中的Project SDK和 Project langua leve设置为如图所示(之前Project SDK是< No SDK>的状态)
在这里插入图片描述然后不需要跳过test去install也是成功的!

10.聚合工程分析

1.分析

在这里插入图片描述

2.创建父工程

2.1创建父模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建成功。
删除父工程不需要的东西
在这里插入图片描述

2.2pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>mavenlearning_parent_01</artifactId>
    <version>1.0-SNAPSHOT</version>

<!--指定父工程的打包方式-->
    <packaging>pom</packaging>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
<!--自己添加需要的东西。(后面图中是web阶段需要的东西)-->
    </properties>


<!--    管理依赖-->
    <dependencyManagement>
        <dependencies>
            <dependency>
<!-- 自己添加一下需要的-->
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <!--指定最终打包的名称-->
        <finalName>parent_01</finalName>


        <plugins>
            <!-- 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- 打jar包插件(会包含所有依赖) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <pluginManagement>
<!--            对于一些不是所有工程都要用到的插件,我们就可以将它管理起来。-->
<!--            如java工程不需要用Tomcat插件,但是web工程需要用,所以可以把tomcat插件管理起来。-->
        </pluginManagement>

    </build>

</project>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 创建公共子模块

4 创建后台模块

后台模块的tomcat端口号为9090
在这里插入图片描述
把他复制到sql中
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.1 创建子模块:

在这里插入图片描述

这里是一个web模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2补充目录

在这里插入图片描述
java和resources都添加一下
在这里插入图片描述
添加test
在这里插入图片描述
在这里插入图片描述
补充完成:在这里插入图片描述

4.3pom.xml
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.example</groupId>
    <artifactId>mavenlearning_parent_01</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>ml_backend</artifactId>

  <packaging>war</packaging>

  <!--  maven视图中显示的名字-->
  <name>ml_backend </name>

  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
      <!--还需要:sevlet,mysql,beanutils,druid,dbutils-->
    </dependency>
  </dependencies>

  <build>
    <finalName>ml_backend</finalName>
<!--    <pluginManagement>&lt;!&ndash; lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) &ndash;&gt;-->
<!--      <plugins>-->
<!--        <plugin>-->
<!--          <artifactId>maven-clean-plugin</artifactId>-->
<!--          <version>3.1.0</version>-->
<!--        </plugin>-->
<!--        &lt;!&ndash; see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging &ndash;&gt;-->
<!--        <plugin>-->
<!--          <artifactId>maven-resources-plugin</artifactId>-->
<!--          <version>3.0.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-compiler-plugin</artifactId>-->
<!--          <version>3.8.0</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-surefire-plugin</artifactId>-->
<!--          <version>2.22.1</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-war-plugin</artifactId>-->
<!--          <version>3.2.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-install-plugin</artifactId>-->
<!--          <version>2.5.2</version>-->
<!--        </plugin>-->
<!--        <plugin>-->
<!--          <artifactId>maven-deploy-plugin</artifactId>-->
<!--          <version>2.8.2</version>-->
<!--        </plugin>-->
<!--      </plugins>-->
<!--    </pluginManagement>-->
    <plugins>
      <plugin>

        <artifactId>tomcat7-maven-plugin</artifactId>
        <groupId>org.apache.tomcat.maven</groupId>
        <configuration>
            <!--端口号-->
            <port>9090</port>
            <!--访问的项目路径-->
            <path>/</path>

        </configuration>

      </plugin>
    </plugins>
  </build>
</project>

文件夹“java”下建包:
在这里插入图片描述
pojo右键new–java class–创建一个名为User的类:
在这里插入图片描述
写入get,set方法和toString方法即可
在这里插入图片描述

“resource”下放入druid.properties,再相应配置一下
在这里插入图片描述
在这里插入图片描述

4.4web层 业务层 数据层 前端代码

默认生成的index你用不了。把它删除。
在这里插入图片描述
自己建
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
html的内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

  <h1>后台程序首页</h1>
<h3><a href=“userListServlet”>用户列表展示</a></h3>


</body>
</html>

然后启动tomcat
在这里插入图片描述
在这里插入图片描述
点击链接:
http://localhost:9090/ 得到:
在这里插入图片描述
点击“用户列表展示”得到:
在这里插入图片描述
为何会如此?因为你根本没有userListServlet。怎么办?加上它即可。到contrl中加:
在这里插入图片描述
在这里插入图片描述
现在就多了一个servlet
在这里插入图片描述
然后继续进行相应配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值