一 参考来源
【慕课网-项目管理利器——maven】(https://www.imooc.com/learn/443)
二 学习笔记
【maven介绍及环境搭建】
简介:maven基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
目录
【bin】mvn运行脚本
【boot】含一个类加载器框架
【config】seeting:
【lib】maven运行的一些依赖的自身or第三方的类库
下载:maven.apache.org
安装:
1.解压至目标安装路径下
2.配置系统环境变量
M2_HOME:添加路径:D:Program Files (x86)Mavenapache-maven-3.5.4
Path:添加路径 %M2_HOME%in
3.检验是否安装成功:【cmd:mvn -v】
【maven项目目录结构】
1.目录结构
src
-main
-java
-package
-test
-java
-package
resources:存放资源和配置文件
-webapp
WEB-INF
2.创建两个Java类文件
【1. src/main/java/com/maven01/model】
package com.imooc.maven01.model;
public class HelloWorld {
public String sayHello(){
return "HelloWrold";
}
}
【2.test//main/java/com/maven01/model】
package com.imooc.maven01.model;
import org.junit.*;
import org.junit.Assert.*;
public class HelloWorldTest{
@Test
public void testHello(){
Assert.assertEquals("HelloWrold", (new HelloWorld()).sayHello());//非"HelloWrold",也会build failure
}
}
【配置pom.xml】
1.pom.xml【项目根maven01目录下(与src并列)】
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.imooc.maven01</groupId>
<!-- 组织标识 -->
<artifactId>maven01-model</artifactId>
<!-- 项目名称 -->
<version>0.0.1SNAPSHOT</version>
<!-- 版本号 -->
<packaging>war</packaging> <!-- 打包格式,jar,war,pom,ear,rar,par,ejb,maven-plugin等 --><dependencies><dependency>
<!-- 依赖项(第三方) -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<!-- <dependency>
-->
<!-- 依赖项(自定义项目) -->
<!-- <groupId>com.imooc.maven02</groupId>
-->
<!-- <artifactId>maven01-model</artifactId>
-->
<!-- <version>0.0.1SNAPSHOT</version>
-->
<!-- </dependency>
</dependencies>
</project>
【注释】
在mvn compile的编译过程中,如果程序引用到其他的依赖包:会在pom.xml中查找,是否引用该依赖包的坐标(groupId,artifactId,version),它会在本地仓库汇总查找:如果仓库中有这些jar包,加入到classpath;反之,没有将会自动下载相应的jar包,并加入classpath中;程序继续执行。
2.cmd,切换至项目根目录下
命令:mvn compile
结果:BUILD SUCCESS
3.执行测试用例:mvn test
结果:BUILD SUCCESS / FAILURE
4.查看项目文件结构
(项目根目录下多了一个tag文件夹)
src
target
classes
maven-status
surefire-reports
test-classes
pom.xml
【maven项目打包发布】
1.切换至项目根目录下
命令:mvn package
2.打包结果
项目根目录
target
maven01-model-0.0.1SNAPSHOT.jar
【maven常用构建命令】
1.mvn -v 查看maven版本
2.mvn compile 编译项目
3.mvn test 执行测试用例
4.mvn package 项目打包发布(jar包)
5.mvn clean 清除maven生成的target目录
6.mvn install 安装jar包到本地仓库中
【自动创建目录骨架】
1.archetype插件:用于创建符合maven规定的项目目录骨架
1.创建项目空文件夹:maven03
2.切换至项目maven03根目录下
3.cmd命令:mvn archetype:generate
=========================
一次性构建:mvn archetype:generate -DgroupId=组织名com.imooc.maven04
-DartifactId=项目名maven04-demo
-Dversion=版本号1.0.0SNAPSHOT
-Dpackage=待创建的包com.imooc.maven04.util
2.maven目录骨架规定
src/main/java目录下:放置主代码
src/test下:放置测试代码
【maven中的坐标和仓库】
1.坐标 (groupId,artifactId,version)
(com.johnnyzen.XX)
构件
依赖的第三方仓库:http://mvnrepository.com
2.仓库:本地仓库/远程仓库
优先找本地仓库,本地找不到仓库,会向互联网全球公布的仓库查找,若还找不到就会报错
maven提供了一个默认下载的全球中央仓库(Central Repository)地址:https://repo.maven.apache.org/maven2
全球中央仓库各第三方仓库检索地址:https://search.maven.org/
设置本地仓库:
1.打开maven安装目录下的配置文件
D:Program Files (x86)Mavenapache-maven-3.5.4confsetting.xml
2.配置<localRepository>
<localRepository>D:Softwares Data[Public Files]MavenRepo</localRepository>
3.镜像仓库
能够提供和中央仓库一样的仓库,且更快更稳定。
如何修改镜像仓库地址:
1.打开maven安装目录:D:Program Files (x86)Mavenapache-maven-3.5.4conf
2.打开setting.xml
3.<mirrors>中配置:
<mirror>
<id>maven.net.cn【mirrorId】</id>
<mirrorOf>central【repositoryId】</mirrorOf>
<name>central mirror in China【Human Readable Name for this Mirror.】</name>
<url>http://maven.net.cn/content/groups/pulibc【http://my.repository.com/repo/path】</url>
</mirror>
【在eclipse中安装maven插件以及创建maven项目】
1.检查是否已安装maven插件:Preferences>Maven
2.若未安装,可以:
下载eclipse maven插件
解压maven插件到eclipse目录的dropin目录下
3.打开Eclipse安装目录下的eclipse.ini文件【更改Eclipse默认运行的私有jre为公有配置的jre使与maven一致】
添加:
-vm
-[JDK的bin目录路径]
4.打开Eclipse,更换JRE:Preferences>Java>Installed JREs>Add>[本机公有JDK/JRE]
勾选本机公有的JDK
5.配置Eclipse上Maven的JDK配置为本机公有JDK:
Preferences>Maven>Installations>Add>[选择 本机的Maven(路径)]
6.修改Eclipse上Maven的User Settings路径:
Preferences>Maven>User Settings:[选择 本机的Maven(路径)下的setting.xml]
7.配置Java-Dmaven.multiModuleProjectDirectory
Preferences>Java>Installed JREs>[选择公有JDK]>Edit
Default VM arguments:-Dmaven.multiModuleProjectDirectory=$M2_HOME
8.重启Eclipse
9.创建Maven项目
File>New Project>Maven>Maven Project>create simple project
右键项目>Run As>Maven>goals:compile
【maven生命周期和插件】
1.完整的项目构建过程包括:
清理/编译/测试/打包/集成测试/验证/部署
清理 clean
pre-clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post-clean执行清理后的文件
构建项目 default(最核心)
compile test package install
生成项目站点 site
pre-site 在生成项目站点前要完成的工作
site 生成项目的站点文档
post-site 在生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上
2.maven插件
【注释】
maven所有的命令都是依赖于它的插件来完成的(Eg:clean compile等)
maven的插件和文档的查看地址:maven.apache.org/plugins/index.html
http://mvnrepository.com/
添加插件(source命令为例),在pom.xml中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run As:Maven>clean package
【maven中pom.xml解析】
<groupId>反写的公司网址+项目名</groupId>
<artifactId>项目名+模块名【实际项目中的模块/项目名称】</artifactId>
<version>大版本号.分支版本号.小版本号 0.0.1【初始/SNAPSHOT快照/alpha内测/beta公测/release稳定/GA正式发布】</version>
<packaging>打包格式,默认jar</packaging>
<dependencies>
<!-- 参见dependencies/dependency元素 -->
<dependency>
</dependency>
</dependencies>
<build> <!-- 构建项目需要的信息 --></build>
<name>项目描述名</name>
<description>项目描述</description>
<url>项目地址</url>
<developers>开发者</developers>
<licenses>项目证书/协议</licenses>
<organization>组织</organization>
(更多见...note2-pom.xml详解:https://www.cnblogs.com/hafiz/p/5360195.html)
【maven依赖范围】dependencies/dependency/scope:
compile 默认范围(编译 测试 运行 均有效);
provided 测试+编译;
runtime 测试+运行;
test 仅测试;
system 测试+编译(与本机系统相关联,可移植性差);
import 导入的范围(只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置);
【maven中聚合和继承】
<modules> <!-- 本项目要聚合的三个子项目(模块) -->
<module>../a-project/module<module>
<module>../b-project/module<module>
<module>../c-project/module<module>
</modules>
<parent>
</parent>
【maven搭建web项目】
-参考文献1:【eclipse+maven搭建web项目(非常详细)】https://blog.csdn.net/wx5040257/article/details/77388086
-参考文献2:【Eclipse创建基于Maven的Web项目】https://blog.csdn.net/huijiahekele/article/details/78589680
-参考文献3:【Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一】https://blog.csdn.net/qing_gee/article/details/78923193
0.创建maven Project > Next>filter 框搜索“webapp”(maven-archetype-webapp)
若Eclipse卡顿崩溃,且因archetype异常,见博文:
【使用MyEclipse新建maven项目时报An internal error occurred during: "Retrieving archetypes:". GC overhead limit】
https://blog.csdn.net/qq_35661171/article/details/78480876
https://blog.csdn.net/qq_30739519/article/details/51516667
1.访问Tomcat官网,copy插件地址:
http://tomcat.apache.org/maven-plugin.html
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>