Maven仓库、指令、配置⽂件、插件详解及ideaMaven项⽬操作Maven
⽂章⽬录
1.简介
解决包管理太⿇烦、项⽬对包依赖的复杂关系的相关问题
项⽬对象模型(POM),可以通过⼀⼩段描述信息来管理项⽬的构建,报告和⽂档的软件
2.作⽤
项⽬构架:编译 -->测试–>打包–>运⾏
依赖管理:jar包管理
项⽬聚合:
Maven\Gradle\Ant
3.安装
1.
2. 配置环境变量(配置完毕后通过调⽤mvn -version进⾏测试)
变量名值
MAVEN_HOME MAVEN项⽬根⽬录
%MAVEN%\bin添加到Path路径
3. ⽂件夹⽬录
bin:含有mvn运⾏脚本
boot:含有plexus-classworlds类加载器框架
lib:含有Maven运⾏时所需要的java类库
conf:含有l配置⽂件
Setting:默认repository仓库路径($(user)/.m2/repository),通过Maven下载的jar包都会保存在该路径
4.仓库配置l
本地仓库:就是Maven在本机存储构件的地⽅。maven的本地仓库,在安装maven后并不会创建,它是在第⼀次执⾏ maven命令的时候才被创建。maven本地仓库的默认位置:在⽤户的⽬录下都只有⼀个.m2/repository/的仓库⽬录;可以修改。
<localRepository> E:/repository/maven/repos</localRepository>
私服:是⼀种特殊的远程仓库,它是架设在局域⽹内的仓库。
[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-LDOvZMdY-1571881204071)
(G:\QF\Markdown\pic\Pharse3\Maven\仓库联系.png)]
5.私服搭建(了解⾯试):nexus maven
1. 解压⽂件
2. 配置环境变量
变量名值
NEXUS_HOME安装地址(解压地址)
%NEXUS_HOME%\bin加⼊Path路径
3. 打开命令⾏执⾏命令
C:\Users\Administrator>nexus install    安装服务
C:\Users\Administrator>nexus start        启动服务
C:\Users\Administrator>nexus uninstall  卸载服务
4. 访问私服
NEXUS内部使⽤Jetty作为服务器,界⾯通过ext.js开发
5. 仓库分类
1. host仓库—>内部项⽬的发布仓库
2. Snapshots 发布内部snapshots版本的仓库
3. Releases 发布内部release版本的仓库
Snapshot版本代表不稳定、尚处于开发中的版本,快照版本。
Release版本则代表稳定的版本,发⾏版本。
3rd party 发布第3⽅jar包的仓库,如oracle数据库驱动,open-189.jar
4. proxy仓库—>从远程中⼼仓库查jar包的仓库
5. Apache Snapshots 查Apache项⽬的快照版本的仓库
6.
7. Codehaus Snapshots 查Codehaus 的快照版本的仓库
8. group仓库—>把仓库按组划分,以组为单位进⾏管理
9. virtual仓库
6. 私服的配置/Repository的配置
在parent模块的l中加⼊私服的配置,让Maven从私服下载jar包,⽽不直接去远程仓库下载。
安装私服之后,让Maven下载jar包先从私服查,如果没有,再从外⽹下载并保存在私服上
在POM在加⼊下⾯的配置,其中url为NEXUS私服的Public Repository对外的地址
以后,Maven下载构建(jar包或插件)都将从这⾥开始下载
<!--配置私服-->
<profiles>
<profile>
<id>profile-nexus</id>
<repositories>
<repository>
<id>nexus</id>
<url>localhost:8081/nexus/content/groups/public/</url>
<snapshots><enabled>true</enabled></snapshots>
<releases><enabled>true</enabled></releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
maven打包本地jar包
<url>localhost:8081/nexus/content/groups/public/</url>
<snapshots><enabled>true</enabled></snapshots>
<releases><enabled>true</enabled></releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>profile-nexus</activeProfile>
</activeProfiles>
6.替换阿⾥云镜像
<!--在l⽂件中配置-->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>maven.aliyun/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
7.idea集成Maven
项⽬⽬录概述
${basedir}存放l⽂件和所有⼦⽬录${basedir}/src/main/java存放java源代码
${basedir}/src/main/resources存放项⽬资源⽂件,如properties配置⽂件${basedir}/src/test/java存放测试类源码,⽐如Junit代码${basedir}/src/test/resources存放测试需要的资源⽂件
${basedir}/target存放编译后 的 classes 会放在 basedir/target/classes 下⾯, 和⽣成的JAR ⽂件8.Maven常⽤命令(⾯试重点)
编译源代码: mvn compile
编译测试代码:mvn test-compile
清除产⽣的项⽬:mvn clean
运⾏测试:mvn test
产⽣site:mvn site 站点:对整个项⽬的描述
<!--安装站点插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-site-renderer</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
打包:mvn package
在本地Repository中安装jar:mvn install
上传项⽬到远程仓库:mvn deploy(更多是私服,需要⽤户名密码等认证)
9.Maven项⽬⽣命周期(⾯试重点)
三套⽣命周期:
Clean 清理项⽬对应命令: mvn clean

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。