Maven 基础
Maven简介
Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
简而言之:依赖管理以及项目生命周期管理
操作系统安装Maven
1:下载Maven:
Apache-maven-3.5.2 下载地址:http://archive.apache.org/dist/maven/maven-3/
2:JDK准备
Maven依赖于JDK,需要JDK1.7版本以上,JDK安装参考
https://www.cnblogs.com/xiaofengshan/p/14924454.html
3:Maven环境变量配置
MAVEN_HOME:
F:\software\apache-maven-3.6.1(Maven路径);Path:
%MAVEN_HOME%\bin.
4:检查Maven是否安装完成
打开cmd窗口,输入mvn -v命令,
我们发现 maven 的版本,及 jdk 的版本符合要求,这样我们的 maven 软件安装就成功了。
Maven 仓库的分类
- 本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,
优先从本地仓库查找;
默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示 windows 用户目录。 - 远程仓库(私服):如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。
远程仓库可以在互联网内也可以在局域网内。 - 中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包含了世界上大部分流行的开源项目构件。
将本地jar包打包到本地仓库和上传到私服
-
本地jar打包到本地仓库
-
mvn install:install-file -Dfile=jar包完整地址或相对地址 -DgroupId=自定义的groupID -DartifactId=自定义的artifactid -Dversion=自定义版本号 -Dpackaging=jar
如:mvn install:install-file -Dfile=commons-codec-1.9.jar -DgroupId=commons.codec -DartifactId=commons-codec -Dversion=0.0.1 -Dpackaging=jar如果上传时报错找不到pom文件,这是由于不同操作系统导致,可以将上面的命令参数加上引号,如下
mvn install:install-file "-Dfile=jar包完整地址或相对地址" "-DgroupId=自定义的groupID" "-DartifactId=自定义的artifactid" "-Dversion=自定义版本号" "-Dpackaging=jar"
-
-
本地jar上传到私服
-
可以登录私服,导入jar
-
也可以使用命令上传
- mvn deploy:deploy-file -Dfile=jar包 -DgroupId=groupID -DartifactId=artifacid -Dversion=版本号 -Dpackaging=jar -Durl=http://ip:port/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
-
- 使用命令从私服中获取jar包
- mvn dependency:get -DremoteRepositories=http://192.168.200.39:888/repository/maven-public/ -DgroupId=org.apache.logging.log4j -DartifactId=log4j-slf4j-impl -Dversion=2.12.1
Maven的settings.xml(配置文件)配置
相关概念
-
全局 setting
在 maven 安装目录下的有 conf/setting.xml 文件,此 setting.xml 文件用于 maven 的所有 project项目,它作为 maven 的全局配置。 -
用户 setting
如需要个性配置则需要在用户配置中设置,用户配置的 setting.xml 文件默认的位置在:
${user.dir}/.m2/settings.xml 目录中,${user.dir}
指 windows 中的用户目录。
maven 会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。
Maven相关配置
- conf/setting.xml 文件配置
<localRepository/>:
建构系统本地仓库的路径,不设置的话默认是在{user.home}/.m2/repository/下,如果想要系统所有用户共用一个本地仓库,则可以在maven安装目录下的setting.xml中进行设置Servers:
配置私服的信息是在pom文件中,但是认证信息则是在setting.xml中,这是因为pom文件往往是被提交到代码仓库中供所有成员访问的,而setting.xml是存放在本地的,这样是安全的.
jar包查找先到本地仓库查找,找不到去私服查找,私服没有,私服去中央仓库下载到私服,然后再下载到本地。
<mirror>
<id>YxNexus</id>
<name>YX Maven</name>
<url>http://192.168.200.39:888/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<localRepository>F:\Apache\repository-local\repository</localRepository>
- 阿里云仓库
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
参考:https://www.cnblogs.com/qlqwjy/p/8643032.html https://blog.csdn.net/weixin_43002202/article/details/109450404
Maven项目的Pom设置
pom.xml 是 Maven 项目的核心配置文件,位于每个工程的根目录,基本配置如下:
<project >:
文件的根节点<modelversion>:
pom.xml 使用的对象模型版本<groupId >:
项目名称,一般写项目的域名<artifactId>:
模块名称,子项目名或模块名称<version>:
产品的版本号<packaging>:
打包类型,一般有 jar、war、pom 等<name>:
项目的显示名,常用于 Maven 生成的文档。<description>:
项目描述,常用于 Maven 生成的文档<dependencies>:
项目依赖构件配置,配置项目依赖构件的坐标<build>:
项目构建配置,配置编译、运行插件等。
三个常用插件
- tomcat插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
此时点击 idea 最右侧 Maven Projects,
就可以看到我们新添加的 tomcat7 插件
双击 tomcat7插件下 tomcat7:run 命令直接运行项目
- maven编译的jdk版本插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source> <!-- 源代码使用的JDK版本 -->
<target>1.8</target> <!-- 需要生成的目标class文件的编译版本 -->
<encoding>UTF-8</encoding><!-- 字符集编码 -->
<skipTests>true</skipTests><!-- 跳过测试 -->
</configuration>
</plugin>
- spring-boot,可执行jar插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Spring Boot Maven plugin的最主要goal就是repackage,其在Maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。
基于上述配置,对一个生成Jar软件包的项目执行如下命令
mvn package spring-boot:repackage
IDEA的Maven设置
IDEA创建Maven项目
添加配置 DarchetypeCatalog=internal,添加原因:每次创建maven项目时, IDEA 要使用插件进行创建,这些插件当你创建新的项目时,它每次都会去中央仓库下载,这样使得创建比较慢。所以在创建maven项目时,应该让它找本地仓库中的插件进行项目的创建。
参考:cnblogs.com/zzvar/articles/14596785.html