Maven
一、配置Maven 二、Maven常见普通工程
三、Maven创建web工程 四、Maven项目的配置 五、将Maven项目转换成Dynamic Web Project
六、连接数据库遇到问题
————————————————————————————————————————————————————————————————————————————————
一、配置Maven
1.安装准备
下载地址:
http://maven.apache.org/download.html
下载:apache.maven-3.*-bin.zip
2.安装
确保有jdk。
命令容器打:java -version(检查是否有JDK)
(1)解压
解压文件到d:\apache-maven-3.3.9
目录结构:
\bin 可执行脚本命令 \conf config配置文件目录 setting.xml最重要 \lib maven运行需要的jar包
(2)安装配置(配置环境变量)
计算机-右键属性-高级系统设置-环境变量
1)系统变量--新建   变量名:M2_HOME   值:bin的绝对地址
2)path里加上   %M2_HOME%\bin
(3)测试
cmd命令容器:mvn -v
3、仓库配置(本地仓库 远程仓库)
D:\apache-maven-3.3.9\conf\setting.xml
1.1本地仓库:
1)建立repository目录(任意位置)
2)setting.xml里加入:
<localRepository>绝对地址repository</localRepository>
1.2 配置中央仓库
setting.xml里加入
<mirrors> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> </mirrors>
4.配置代理(如果是通过代理上网的需要配置,否则忽略这步105行proxys)
<proxy>
  <id>my-proxy</id>
  <active>true</active>
  <protocol>http</protocol>
  <host>192.168.181.238</host>
  <port>8080</port>
</proxy>
5.配置JDK版本
<profile>  
  <id>jdk-1.8</id>  
  <activation>  
    <activeByDefault>true</activeByDefault>  
    <jdk>1.8</jdk>  
  </activation>  
  <properties>  
    <maven.compiler.source>1.8</maven.compiler.source>  
    <maven.compiler.target>1.8</maven.compiler.target>  
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
  </properties>  
</profile>
6.在eclipse中读取setting.xml
user setting将global setting和user setting都选择conf里的setting.xml

二、Maven常见普通工程
1.首先创建Maven Project
2.点击next默认设置(注意这里不勾选“Create a simple project”表示使用骨架)
3.创建Java项目则选择“maven-archetype-quickstart”其他默认

4.点击next出现如下截图所示,添加groupId,Artifact Id,选择Version版本
5.此时maven 创建Java项目成功。运行maven项目为如下截图:

 
备注:运行maven项目,选中项目右击“Run AS”--"Maven build..."*(一定要选中这个,才能出现上面截图)--在弹出框的Goals中输入命令如clean compile运行maven项目。
查看控制台看到Build success表示测试成功。若是测试则 clean test (先清空后测试)。
2、直接点击下一步

3、选中 maven-archetype-webapp 后点击下一步

4、 Group Id 中输入项目的基本包名
Artifact Id 中输入项目名。 Version 中的值默认就行,不进行选择。 Package 中写的是默认生成的一个包名,不写也可以。
接着点击完成就可以了。

5、创建好项目后结构如下:

 
------web.xml 的版本是2.3的,是老版本
------新生成的工程默认的 jdk 和 compiler 都是1.5 的
------而且没有src/main/java 这样结构的 maven 目录
1、修改web.xml
由于Maven中的 maven-archetype-webapp 样板项目的 web.xml 是2.3版本的,我们需要替换成新版本:
可以在Eclipse中新建一个web工程,将它 WebContent/WEB-INF 目录下的 web.xml 文件复制替换掉我们的 Maven 项目中 src/main/webapp/WEB-INF/ 目录下的web.xml 文件。
原来的web.xml内容
<!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>
</web-app>
替换后的web.xml内容
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>mydemo</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
2、pom.xml 里面build 标签下添加 maven编译插件
<plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins>
3、添加缺少的目录并指定输出路径
Maven规定,必须创建以下几个包,并且分别对应相应的输出路径(在Java Resource下)
src/main/resources src/main/java src/test/resources src/test/java
右键项目----->BUild Path----->Configure Build Path...
(1)在Order and Export (这里是控制项目中包的显示顺序的)这个栏里会发现有几个目录显示missing(丢失),随便选中一个改变下顺序(Up 或者 Down 或者 Top 或者 Bottom),然后点击应用,OK,丢失的目录会在项目中显示出来,再次进到这个地方,红叉标识已经消失了。(这一步比较奇怪,可能是eclipse中maven插件的bug吧)
点击Create New Folder... ,输入缺少的包名,直接点击完成,回到这个界面点击OK就行

 
(3)接着就会看到Source这里多了一个刚才添加的包,这个新加的包没有指定输出目录,需要进行修改
在Source 里面设定4个文件夹的输出Output folder,双击进行修改
分别修改输出路径为
/src/main/resources 对应 target/classes /src/main/java 对应 target/classes /src/test/resources 对应 target/test-classes /src/test/java 对应 target/test-classes
我这只需要修改第四个目录就可以了(前三个都默认设置好了,如果你的没设置好就设置一下)
最终的效果如下图所示:

此时的目录结构为:

4、配置项目部署程序集(Web Deployment Assembly)
右键项目----->Properties----->Deployment Assembly
(1)删除test的两项,因为test是测试使用,并不需要部署。
Add -----> Java Build Path Entries -----> Maven Dependencies -----> Finish
 
最终是这样的
五、将Maven项目转换成Dynamic Web Project
(1)右键项目----->Properties
在左侧选择 Project Facets,单击右侧的 Convert faceted from

刚进来时是这样的,需要把Dynamic Web Module (动态web模块)的版本修改为 3.1 (最新版),Java的版本修改为项目用的1.8。
这里可能会报一个错误,在修改动态web模块版本的时候会提示Cannot change version of project facet Dynamic Web Module to 3.1。
不要紧,只需要去掉动态web模块前面的对勾,点击OK,接着再进入这个界面就能够修改动态web模块的版本了。

修改完成是这样的,接下来单击 Further Configuration available... (进一步可用的配置)链接
修改 Content directory(内容目录) 的值 WebContent 为 src/main/webapp ,单击OK,然后回到上一步窗口直接点击OK。
这里可能出现的问题是,会给你个提示目录错误的弹窗,不要紧,你可以检查下之前文件输出路径的设置是否有问题(Java Build Path -----> Source),修改过来应该就没问题了
完成这一步之后你可以检查下你的Java Build Path 中的Libraries 中的jdk版本,还有Java Compiler (编译环境),发现都已经改为1.8版本了。
(2)接下来你项目中的pom.xml 可能报一个错 web.xml is missing and <failOnMissingWebXml> is set to true ,如果没报错,可以忽略不看
解决办法:
使用maven创建项目有时在pom.xml的war处出现failOnMissingWebXml的错误,根据pom.xml 可以知道这个项目是web项目,打包时打成war包。
错误提示的是丢失web.xml,所以如果项目里没有web.xml,则在项目里添加一个web.xml,刷新一下项目,就应该没有错误了。
如果还有错的话就需要在eclispe上方点击Project ----->Clean 清理一下这个项目了。
经过这两步错误就应该已经清除了。
(3)到这一步,web项目就创建完毕了,可以看一下你的项目结构,如果有什么build目录,WebContent 目录的话可以直接删除(确保你的输出目录之类的已经设置好了)。
直接把页面资源放置在src/main/webapp/ 目录下,所以最终的项目结构如下所示:
基本上清除未知错误的方法是:
1、右键项目----->Run As----->Maven clean
2、Project----->Clean...
3、右键项目----->Maven----->Update Project...
如果没效果,可以试着把pom.xml稍微修改下,比如加个空格之类的,再进行一次,应该就不报错了。
六、连接数据库遇到问题
连接数据库失败的原因:mysql url的时区问题
修改成以下格式:
driver = com.mysql.cj.jdbc.Driver mysqlUrl = jdbc:mysql://localhost:3306/scott?serverTimezone=GMT user = root password = root
                    
                
                
            
        
浙公网安备 33010602011771号