maven基础笔记整理(idea版)

  • Post author:
  • Post category:其他



maven基础篇(idea版)


p1-p11 打卡 2020.06.10

p12-最后 打卡 2020.06.11

除最后数据库链接没有整理笔记,之外都整理了,看看该去学别的了hhh


提示:建议使用idea2020.2的版本来适配maven3.6.3



最开始用2020.1的版本的时候出现了各种各样的问题,后来提高版本后就没有之前那么多问题了,版本适配害人呜呜呜呜呜

01_自动化构建工具

1、目前掌握的技术

在这里插入图片描述

2、目前的技术在开发中存在的问题

①一个项目就是一个工程

②项目中需要的jar包必须手动“复制”、“粘贴”到WEB-INF/lib中

③jar包需要别人替我们准备好,或到官网下载

④一个jar包依赖的其他jar包需要自己手动加入到项目中

Maven优势

依赖管理:maven工程对jar包的管理过程

在这里插入图片描述

在这里插入图片描述

MAVEN标准目录结构

在这里插入图片描述

MAVEN常用命令

mvn clean

mvn compile

mvn test

mvn package 打包war包

mvn install 安装到了本地仓库D:\maven_repository\cn\itcast\maven目录下

maven生命周期

在这里插入图片描述

maven概念模型

在这里插入图片描述

idea中maven配置

在这里插入图片描述

配置了这个maven在不联网时也可使用,如果不配置的话,maven必须联网使用

-DarchetypeCatalog=internal

在这里插入图片描述

使用骨架创建maven的java工程

IDEA版本:2020.1

Maven版本:3.6.3

勾选create from archetype就可以使用下方列出的idea中的骨架

在这里插入图片描述

选择quickstart,quickstart就是idea为maven提供的java骨架

在这里插入图片描述

在这里插入图片描述

在运行构建好的maven新文件中出现以下报错(当时就复制了这个搜索错误)

Error:(3, 24) java: 程序包org.junit不存在

打开project structure->libraries->java->然后寻找idea的安装目录下的lib,我直接全部导入了然后再次运行app.java就没有报错了

在这里插入图片描述

创建resources目录

在main目录下右键创建目录

idea 2020.1版本中创建resources目录直接创建为资源目录

如果不是先创建resources右键->mark directory as -> resources root

在这里插入图片描述

另附阿里镜像文件(下载速度能快一些

配置在apache-maven-3.6.3->conf->settings.xml->mirrors标签内

<mirror> 
	<id>alimaven</id> 
	<mirrorOf>central</mirrorOf> 
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url> 
</mirror>

不使用骨架创建maven项目

在这里插入图片描述

在这里插入图片描述

没有像选择骨架那样生成一个java文件,但是大致的框架还是有的

在这里插入图片描述

创建maven的web工程

在这里插入图片描述

在第一次新建项目时等待一下,控制台出现build success则成功

这是我的项目目录,新建一个文件夹为java,然后按下图操作,就可以在里面写servlet了

在这里插入图片描述

然后发现在java包下没有servlet,所以去网上找了解决方法

参考博客


这是我的pom下的配置,记得选择maven load changes,我因为一直没有选择,然后servlet一直爆红……百度了那么久,回头研究的时候发现是这里没有点,有点崩溃=-=

在这里插入图片描述

发现这样写很方便啊,不管写的那种方式,都不会报错,GET!

在这里插入图片描述

idea右侧点击maven,会出现maven的生命周期,可以直接双击执行,或者点击m的小符号用命令来执行,是一样的

在这里插入图片描述

按照老师说的,发现没有代码提示,但是没关系,依旧可以执行,idea会自动下载,然后执行(记得在前面配置阿里云的镜像下载

在这里插入图片描述

我在那里等了好久才发现控制台已经出了=-=

在这里插入图片描述

解决jar包冲突问题,修改scope范围

在这里插入图片描述

然后再次执行tomcat:run的时候控制台报错,发现,似乎是原来的启动的tomcat未关闭的原因。。

execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:run (default-cli) on project maven_web: Could not start Tomcat

再次加载网页出现这个问题可以参考这篇

参考博客


在这里插入图片描述

如果配置失败,cmd启动tomcat的方法如下…然后打开idea执行tomcat7:run

就可以跳转网页了,虽然我也不知道到底是那里出错了……至少,现在能用了,先用着看看

在这里插入图片描述

这是我目前的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>com.example</groupId>
  <artifactId>maven_web</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>maven_web Maven Webapp</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>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <finalName>maven_web</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <!-- 使用tomcat9部署应用 此处的server标签中的值与第二步maven配置文件中的id值一致-->
            <server>tomcat9</server>
            <update>true</update>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <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>


另附pom.xml中依赖的范围
在这里插入图片描述



版权声明:本文为qq_43717736原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。