IDEA 已经自带了 Maven,位于 IDEA 安装目录下的plugins/maven/lib/maven3,不需要单独再下载。为了方便,只需要将其bin目录加入到PATH环境变量即可。
Maven 默认的用户级配置文件和本地缓存仓库在用户主目录的下.m2目录下,即~/.m2/settings.xml和~/.m2/repository。全局的配置文件在安装目录下的conf目录下。为了使全局配置生效,有必要删除用户主目录下的.m2目录。
新建一个目录作为 Maven 的本地缓存仓库,并在settings.xml的根节点下进行配置,如:
<localRepository>D:/env/repository</localRepository>在settings.xml的<mirror>节点下添加以下内容:
<mirror> <id>aliyun-maven</id> <mirrorOf>central</mirrorOf> <name>aliyun-maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>可以直接使用 IDEA 自带的 Maven,因此只需要指定 Maven 的配置文件和本地缓存仓库即可。
只有 Servlet 3.0 及以上才支持注解。web.xml的各版本描述信息可以在 IDEA 的模板中找到,如下图位置:
也可以在项目结构中进行重新配置web.xml和webapp的路径(移除 > 应用 > 重新添加):
默认情况下,Maven 项目中src/main/java目录下的 JAVA 源文件和src/main/resources目录下的资源文件会被编译到 CLASSPATH。但如果要编译src/main/java目录下的资源文件(如 XML)到 CLASSPATH,还需要在pom.xml的<build>节点下的<resources>节点下做相应的配置:
<resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource>我们注意到 Maven 提供的原型并不都是开箱即用的,或多或少都还需要做一些配置和调整,因此自定义原型是非常有必要的。
原型插件:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-archetype-plugin</artifactId> <version>3.0.0</version> </plugin>编译空目录的插件:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.0</version> <configuration> <includeEmptyDirs>true</includeEmptyDirs> </configuration> </plugin>https://gitee.com/icefery/maven-archetype-webapp
maven-archetype-webapp # 项目根目录 |--pom.xml |--src |--main |--resources |--META-INF |--maven |--archetype-metadata.xml |--archetype-resources # 原型根目录 |--pom.xml |--src |--main |--java |--resources |--webapp |--WEB-INF |--web.xml在项目根目录执行如下命令,以安装到本地缓存仓库、更新本地缓存仓库的archetype-catalog.xml:
mvn clean mvn install mvn archetype:update-local-catalog或者在 IDEA 的 Maven 面板快捷执行:
通过命令行从原型创建:
mvn archetype:generate -D interactiveMode=false \ -D archetypeCatalog=local \ -D archetypeGroupId=xyz.icefery.archetypes \ -D archetypeArtifactId=maven-archetype-webapp \ -D archetypeVersion=1.0.0 \ -D groupId=xyz.icefery.demo.mvnweb \ -D artifactId=mvn-web-demo \ -D version=0.0.1-SNAPSHOT \ -D package=xyz.icefery.demo.mvnweb如果要删除 IDEA 中已添加的原型,可以找到类似如下路径的配置文件并删除其中对应的节点:
C:\Users\icefery\AppData\Local\JetBrains\IntelliJIdea2020.2\Maven\Indices\UserArchetypes.xml