21Maven使用
此文章中所用示例Maven版本为apache-maven-3.6.3、解压后Maven路径为C:\apache-maven-3.6.3,本地仓库路径为D:\mvnRespo。
一、解压Maven文件
解压maven并放置在没有中文和空格的路径中。
二、配置Settings文件
离线状态下,本地Maven的conf\settings.xml文件配置如下。
<!-- 本地maven仓库路径 -->
<localRepository>D:\mvnRespo</localRepository>
<!-- 配置maven为离线状态 -->
<offline>true</offline>
<!-- 本地镜像源路径 -->
<mirrors>
<mirror>
<id>local</id>
<mirrorOf>localRepo</mirrorOf>
<name>localRepo</name>
<url>D:\mvnRespo</url>
</mirror>
</mirrors>
三、配置环境变量
1、增加环境变量:MAVEN_HOME=C:\apache-maven-3.6.3
2、更改环境变量:Path变量中加上“%MAVEN_HOME%\bin”
四、导入本地离线仓库
(一)复制替换仓库文件夹
根据Maven配置文件创建本地离线仓库文件夹,将互联网电脑上下载好的本地仓库文件夹内容复制到创建的本地离线仓库文件夹中。为了避免离线情况下,Maven仍然像在在线情况一样去远程仓库寻找依赖,我们需要删除离线仓库文件夹中所有的_remote.repositories文件。
删除方法:
1、使用命令行窗口指定到创建的本地仓库文件夹中。
2、执行命令:
for /r %i in (_remote.repositories) do del %i
3、等待删除完成即可。
(二)单独导入jar包
使用命令行窗口,打开maven路径中的bin文件夹,在其中执行mvn命令。需要知道此jar包的存放路径和版本。
示例:导入ojdbc8-12.2.0.1.jar。
C:\apache-maven-3.6.3\bin>mvn install:install-file -Dfile=D:\ojdbc8-12.2.0.1.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar
注意以上语句在Windows11系统环境下可能会安装失败,我们可以使用虚拟机创建Windows7环境,在Windows7环境下使用以上语句导入本地仓库,然后将Windows7本地仓库复制到Windows11本地仓库中解决此问题。
五、配置IDEA
(一)配置当前项目。
打开项目后,选择File->Settings,弹出Settings窗口,选择Build,Execution,Deployment->Build Tools->Maven,配置如下
(二)配置默认项目
选择File->New Projects Setup->Settings For New Projects,弹出Settings窗口,选择Build,Execution,Deployment->Build Tools->Maven,配置如上图所示。
六、使用IDEA导入Maven项目
选择File->Open,打开Maven项目。
IDEA右侧栏有Maven配置窗口,打开该窗口点击“Reload All Maven Projects”按钮,即可根据IDEA的Maven配置重新加载本地依赖。
其他说明
使用IDEA创建Maven项目后继续添加Web框架,配置web.xml,配置Tomcat后,运行时发现out->artifacts->war包名->WEB-INF中没有classes文件,且访问网页时显示500错误。
导致此问题的情况很多,以下列举几种
1、Project Structure问题
检查Project Structure对话框中的Project Settings,特别是Facets(与Modules是联动的)和Artifacts两个项目。对于Facets,可以删除后使用默认模式重建;对于Artifacts,默认方式重建并检查Output Layout中有没有classes文件夹和lib文件夹。
(1)停止Tomcat服务。
(2)删除out->artifacts以下的文件,删除target目录。
(3)pom.xml中不要指定<packing>
标签。
(4)打开Project Structure对话框中的Project Setting的Facets项目,删除原有所有的配置,重新在Web中增加Web配置,核对下默认配置是否正确。Deployment Descriptors中应该选择到web中的web.xml,Web Resource Directories中应该选择到web目录,Source Roots都勾选。
(5)打开Project Structure对话框中的Project Setting的Artifacts项目,删除原有所有配置,重新增加一个Empty Web Application:Exploded。
检查其Output directory是否在out路径中,将Available Elements中所有的元素都双击添加至左侧。
2、Tomcat问题
检查Run/Debug Configurations对话框中的Tomcat Server项目,只需要修改添加Deployment选项卡即可,使用默认名字即可,注意Application context的路径。
(1)停止Tomcat服务。
(2)删除out->artifacts以下的文件,删除target目录。
(3)pom.xml中不要指定<packing>
标签。
(4)Run/Debug Configurations对话框中删除所有配置,重新增加Tomcat服务,选择Local。
(5)修改添加Deployment选项卡。删除所有配置,重新增加Artifacts。
如果配置好Project Structure,这里使用默认配置即可。可以按需修改Application context的路径。
(6)重启Tomcat服务。
3、Maven问题
Maven构建错误,没有将source文件构建起来。检查下项目名.iml文件内容。使用IDEA的Maven导入方式重新打开该项目。
以下为正常项目的内容。
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/web" relative="/" />
</webroots>
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
</module>