https://github.com/apache/maven
阶段 | 处理 | 描述 |
---|---|---|
清理 clean | 清理项目 | 清理项目之前产出的JAR/WAR和构建信息 |
验证 validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 执行编译 | 源代码编译在此阶段完成 |
测试 Test | 测试 | 使用适当的单元测试框架(例如JUnit)运行测试。 |
包装 package | 打包 | 创建JAR/WAR包如在 pom.xml 中定义提及的包 |
检查 verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
目前 IDE都是内置集成了maven,一般安装maven的目的是为了在命令行中可以执行maven的生命周期操作,完成项目编译构建。
官网下载地址:http://maven.apache.org/download.cgi
C:.
│ LICENSE
│ NOTICE
│ README.txt
│
├─bin
│ m2.conf
│ mvn
│ mvn.cmd
│ mvnDebug
│ mvnDebug.cmd
│ mvnyjp
│
├─boot
│ plexus-classworlds-2.8.0.jar
│ plexus-classworlds.license
│
├─conf
│ │ settings.xml
│ │ toolchains.xml
│ │
│ └─logging
│ simplelogger.properties
│
└─lib
打开cmd,输入 mvn -version 能够查询到maven的版本则说明maven配置成功
在maven目录的conf目录下,修改settings.xml中mirrors标签中加入如下内容:
修改完之后,把settings.xml文件复制到.m2目录下,即可以被全局调用。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
[!TIP]
xml(extensible markup language 可扩展标记语言)
<元素 属性="属性值">内容</元素>
xml 中用 表示注释。
<localRepository>/path/to/local/repo</localRepository>
在IDEA中的File->Settings菜单里找到 Build,Execution,Deployment菜单,在Build tools菜单中
点击maven,确认User settings file文件是本地.m2目录下的settings.xml文件,仓库目录是本地.m2目录下的repository目录。
在project元素中添加dependencies,用dependency加依赖
maven引入依赖:
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
使用不同的maven构建插件来完成生命周期动作
<!-- 测试插件surefire-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
<!-- configuration元素可以省略,那么会默认运行/src/test/java下的所有文件 -->
<!-- 在configuration中可以配置放在src/test/java目录下需要执行的类文件名 -->
<configuration>
<!-- 如果要跳过单元测试执行,加上skipTests-->
<!-- <skipTests>true</skipTests>-->
<!-- 配置要执行的测试代码,配置类名即可。支持使用*做通配,比如*Test表示Test结尾的文件,也支持正则表达式-->
<includes>
<include>ErrorLoginTest</include>
<include>MavenJunitTest</include>
</includes>
<!-- 配置不执行的测试类-->
<excludes>
<exclude>LoginSuite</exclude>
</excludes>
</configuration>
</plugin>
可直接使用 java -jar 命令进行运行
<build>
<plugins>
<plugin>
<artifactId> maven-assembly-plugin </artifactId>
<configuration>
<!-- 表示需要使用项目中依赖的jar -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- 如果需要可执行的jar -->
<archive>
<manifest>
<!--在这里把要运行的类填进来。 -->
<mainClass>com.testing.class12</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>