此文章是为记录个人创建maven项目时遇到的问题以及解决方法
一、安装配置Maven
1、下载:https://maven.apache.org/download.cgi
Binary是我们需要下载的二进制文件
Source是maven的源文件
zip是Windows的压缩方式
tar.gz是Linux的压缩方式
2、配置MAVEN环境
创建M2_HOME(这个名字可以自己起)
M2_HOME(maven的目录):D:\Tools\JAVA\apache-maven-3.5.2
给path添加(注意;号分隔之前的)
path:%M2_HOME%\bin;
运行命令查看环境是否配置成功
3、设置setting.xml文件(详细配置介绍可以参考官方文档http://maven.apache.org/settings.html)
进入maven目录apache-maven-3.5.2\conf打开setting.xml文件
配置maven仓库路径(在<settings>标签内配置<localRepository>)
<localRepository>E:\Maven_repository</localRepository>
为自己的Maven配置国内镜像源(推荐)
打开自己的 Maven根目录/conf/setting.xml
在<mirrors></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>repo</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
或者
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
或者
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</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>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
===========================================================================
命令行创建项目
创建Maven的Web项目:mvn archetype:generate -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeGroupId=org.apache.maven.archetypes -DinteractiveMode=false
创建Maven的普通java项目:mvn archetype:generate -DgroupId=packageName -DartifactId=projectName -DinteractiveMode=false
mvn eclipse:eclipse
mvn eclipse:clean
mvn eclipse:m2eclipse
--src
-----main
----------java
----------resources
-----test
---------java
---------resources
--target
--pom.xml
src/main/java | application library sources - java源代码文件 |
src/main/resources | application library resources - 资源库,会自动复制到classes文件夹下 |
src/main/filters | resources filter files - 资源过滤文件 |
src/main/assembly | assembly descriptor - 组件的描述配置,如何打包 |
src/main/config | configuration files - 配置文件 |
src/main/webapp | web application sources - web应用的目录,WEB-INF,js,css等 |
src/main/bin | 脚本库 |
src/test/java | 单元测试java源代码文件 |
src/test/resources | 测试需要的资源库 |
src/test/filters | 测试资源过滤库 |
src/site | 一些文档 |
target/ | 存放项目构建后的文件和目录,jar包,war包,编译的class文件等;Maven构建时生成的 |
pom.xml | 工程描述文件 |
LICENSE.txt | license |
README.txt | read me |
二、创建maven项目(intellij版)
1、创建前的准备,设置intellij默认(Default)的maven
在maven的runner选项上设置maven vm options:-Dmaven.multiModuleProjectDirectory=$M2_HOME
1、打开intellij创建maven模板
2、填写groupID和artifact ID
3、选择安装路径、配置文件路径、仓库路径
在创建maven项目的时候,加archetypeCatalog=internal
4、设置项目名及其他
- 遇到的问题
1、项目模板创建失败没有src目录
IDEA报错-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.[ERROR] Maven execution terminated abnormally (exit code 1)
1、可能是jdk版本不匹配
2、需要在maven的runner选项上设置maven vm options:-Dmaven.multiModuleProjectDirectory=$M2_HOME
因为没有设置intellij默认(Default)的maven runner和jdk,所以在以maven模板创建时得不到需要的multiModuleProjectDirectory和jdk信息从而无法创建或下载某些依赖
===========================================================================
三、创建maven项目(eclipse版)
1、创建前的准备,为eclipse配置maven
打开eclipse----》Window----》preference
配置maven的settings.xml和仓库路径
2、创建maven web项目
选择模板(这里我选择了WEB模板,可以根据自己的需求选择不同模板)
填写GroupID 和 artifactID,点击finish就创建好了
- 遇到的问题
1、会有JSP报错,The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
这是因为我们缺少依赖。
方法一:在pom.xml文件中添加servlet-api(推荐)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
方法二:直接指向引tomcat,引用其中的所有依赖(不推荐)
添加方式有很多,我这里记录下我的方式
右键---->properties---->Java Build Path---->add Library---->server Runtime
2、缺少以下3个文件夹
src/main/java
src/test/java
src/test/resources
右键项目根目录点击New -> Source Folder,
建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。
项目或者文件加上右键 new sourceFolder,正常情况下是没有问题的
如果出现了下面的这情况,其实是真的存在的只是我们看不到
检查创建使用的JDK版本,如果是1.5请设置为1.7或更高版本(1.6没有试验过)
右键项目属性后,点击Java Build Path-->Libraries-->JRE System Library[J2SE-1.5]-->Edit..-->Workspace default JRE