maven基础篇(idea版)
p1-p11 打卡 2020.06.10
p12-最后 打卡 2020.06.11
除最后数据库链接没有整理笔记,之外都整理了,看看该去学别的了hhh
2、目前的技术在开发中存在的问题
①一个项目就是一个工程
②项目中需要的jar包必须手动“复制”、“粘贴”到WEB-INF/lib中
③jar包需要别人替我们准备好,或到官网下载
④一个jar包依赖的其他jar包需要自己手动加入到项目中
Maven优势
依赖管理:maven工程对jar包的管理过程
MAVEN常用命令
mvn clean
mvn compile
mvn test
mvn package 打包war包
mvn install 安装到了本地仓库D:\maven_repository\cn\itcast\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>