文章目录
下载
Maven下载
Binary:二进制文件,已经编译好可直接部署【默认选项】
Source:源代码文件,需要修改、调试、编译后才能部署【有定制化需求】
tar.gz:Linux
zip:Win
1.Maven与IDEA版本问题
Maven版本发布时间低于IDEA发布时间即可
2.Maven阿里云镜像加速
id:可以随意给但不能重复
mirrorOf:
- *:通配符匹配,会将所有 jar 包的下载请求从此url中下载
- central:精确匹配,会将匹配到 jar 包的下载请求从此url中央仓库【远程仓库】下载
只配置了一个mirror当 * 匹配出错的时候就会无法下载【此时配置的和central效果一样】
当配置了多个mirror是,匹配顺序是:精确匹配 > 模糊匹配。因此不推荐全部使用 * 进行匹配。
全部使用 central:则会按照 mirror 标签的顺序进行匹配,如果仓库1没有对应的 jar 包就会找仓库2知道配置的所有仓库都没有对应的jar包则会报错
<!--mirrors标签-->
<mirror>
<!--阿里云仓库-->
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<!--默认仓库-->
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>
3.Maven本地仓库路径修改
<!--
Maven配置文件路径:apache-maven-3.8.5/conf/settings.xml
settings下边的localRepository标签
-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>/Users/cxf/Java/lib/apache-maven-3.8.5/mavven-repo</localRepository>
4.Maven默认版本jdk
Java8
<!--profiles标签-->
<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>
Java17
<!--profiles标签-->
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
</properties>
</profile>
5.IDEA中创建Maven项目
第一次创建的时候发现这里缺少两个重要文件【main里边还有java和resource】
作如下修改
-
方案1⃣️
-
方案2⃣️
我们再新建一个Maven项目来看看是否会自动生成 java,resource目录
后续的步骤一样,我们查看最后创建好的干净的Maven项目
方便我们以后自动使用这个Maven仓库,我们可以为后续的新项目进行设置Maven的路径,配置文件,仓库地址
6.启动一个HelloWorld
配置Tomcat
我的是社区版,需要用到 插件SmartTomcat
安装好插件之后配置 SmartTomcat
点击运行的绿色三角符号【此时的Servlet挂在在Tomcat,因此不需要main函数即可运行】
最后运行效果如图所示
7.IDEA创建Maven卡死
7.2 New Project
创建一个不使用代码模版的Maven项目
7.3 Maven Archetype
创建一个使用文件模版的Maven项目「Archetype输入webapp,选择带有maven的选项」
会自动生成代码目录文件「web.xml」
7.4 出现无响应或者IDEA卡死
记得把如下操作设置为新建项目设置
这个问题一般是出现在网络情况上,因为需要下载一个 archetype-catalog.xml「打开网页之后ctrl+s保存操作就会下载」 足足有12.6MB大小
下载好之后调整IDEA中Maven设置
-DarchetypeCatalog=参数xxx
- internal:读取maven-archetype-plugin内置的 archetype-catalog.xml 文件
- local:读取本地设置的代码仓库中 org/apache/maven/archetype/archetype-catalog/3.2.1/archetype-catalog.xml
- remote:读取Maven中央仓库中的Catalog文件
默认为remote,即从 https://repo1.maven.org/maven2/archetype-catalog.xml 路径下载archetype-catalog.xml文件。
知道这些参数作用后现在我们就可以自由选择了「一般不用remote参数」
方案一
- internal
这个时候就会使用 maven-archetype-plugin 内置的 archetype-catalog.xml 文件,和我们之前下载好的 archetype-catalog.xml 无关 - local
这个时候就需要把 archetype-catalog.xml 放到对应的 路径才可以是的参数设置成功- IDEA设置的Maven仓库路径:/Users/cxf/java/lib/apache-maven-3.8.5/maven-repo
- archetype-catalog.xml放置的路径:/Users/cxf/java/lib/apache-maven-3.8.5/maven-repo/org/apache/maven/archetype/archetype-catalog/3.2.1/archetype-catalog.xml
- remote
这个只会拖慢速度除非大佬网速好,下载很快就可以考虑这个方案
如下图所示
方案二
在初始化界面创建 Maven 项目
如果在某个项目中新建项目操作就会有概率引起无响应和卡死
如下图所示
有一个比较靠谱的说法是:因为项目可能是用的JDK版本不一样导致的卡死,可以在 Maven->importing 中设置选择固定JDK「默认是User Project JDK选项。我换成了1.8选项」。这种方案仅供参考,具体哪种原因造成的无响应和卡顿本人未证实。
总结
上述方案可以轮流着换,都是一劳永逸的效果。
一般用 internal居多,实在无计可施就更改 Maven 的 import 选项,退出当前项目到初始化界面再创建Maven