1. Maven的下载安装
在Maven的官网即可下载,点击访问Apache Maven。
1.1. Windows安装
下载后解压即可,解压后目录结构如下:
Maven常用配置
在配置之前请将JDK安装好。
- 环境变量配置
添加M2_HOME:对应Maven的解压目录即可。
编辑Path环境变量:
测试,在cmd窗口输入mvn -v查看
显示如下即配置成功:
1.2. Centos下安装
wget https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
这个地址只作参考哈
wget https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
解压
tar -zxvf apache-maven-3.8.5-bin.tar.gz
mv apache-maven-3.8.5 /usr/local/maven/
配置环境变量
vim /etc/profile
MAVEN_HOME=/usr/local/maven
PATH=
M
A
V
E
N
H
O
M
E
/
b
i
n
:
{MAVEN_HOME}/bin:
MAVENHOME/bin:{PATH}
export PATH
刷新
source /etc/profile
查看
mvn -v
2. 修改配置文件
通常我们需要修改解压目录下conf/settings.xml文件,这样可以更好的适合我们的使用。
此处注意:所有的修改一定要在注释标签外面,不然修改无效。Maven很多标签都是给的例子,都是注释掉的。
文章最后附上我的整个Settings.xml文件配置。
2.1 本地仓库位置修改
在标签内添加自己的本地位置路径
本地仓库位置修改
在<localRepository>标签内添加自己的本地位置路径
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\tools\repository</localRepository>
2.2. 修改maven默认的JDK版本
在标签下添加一个标签,修改maven默认的JDK版本。
<profile>
<id>JDK-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
添加国内镜像源
添加标签下,添加国内镜像源,这样下载jar包速度很快。默认的中央仓库有时候甚至连接不通。一般使用阿里云镜像库即可。这里我就都加上了,Maven会默认从这几个开始下载,没有的话就会去中央仓库了。
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
常用IDE下配置Maven
目前常用的开发工具如idea,eclipse都自身集成了一个版本的Maven。但是通常我们使用自己已经配置好的Maven。
3. IDEA下配置Maven
File->Setting下面,然后如上图,找到对应的maven进行设置即可
4. 组件版本号查询
Marven的各个组件需要查询和安装对应的版本号的,如何查询版本号?
通过官网:http://mvnrepository.com/,或者:https://search.maven.org/
在搜索栏中输入想要引入的依赖group id或者artifact id名称即可查找到。
5. 本地jar包加载
5.1 方案一
- 首先要将本地jar包放入lib目录下,创建和resource平级的目录,如下:
然后把要加入的jar放到里面去 - 增加pom依赖
<dependency>
<groupId>com.asiainfo.encrypt.utils</groupId>
<artifactId>encrypt_tools</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/lib/encrypt_tools.jar</systemPath>
</dependency>
- 绑定plugins设置
注意,下面的标签是为了打包成独立的jar要用到的,参见打包jar的说明,这里有一个大坑,这个标签不能在pluginManagement里面,否则就无效了
<!--添加了本地jar包后需要的-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.qfkj.App</mainClass>
</configuration>
</plugin>
- 重新设置reosurce
<!--添加了本地jar包后需要的-->
<resources>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
</resource>
<!--这个不加上,直接就找不到yml配置了-->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
5.2 本地jar包加载的另外一个方案
把jar包下载下来,然后运行:
mvn install:install-file -Dfile=wechatpay-apache-httpclient-0.1.5.jar -DgroupId=com.github.wechatpay-apiv3 -DartifactId=wechatpay-apache-httpclient -Dversion=0.1.5 -Dpackaging=jar
这命令相当于手动将jar包安装一次到本地仓库中。
上的参数包括jar文件,安装的groupId名,artifactId名,以及version
安装完后,安装命令中的groupId名,artifactId名,以及version编写pom就可以了
这个方法的缺点显而易见,不能将仓库搬到代码库上,所以在git团队项目中,其他人获取这个工程,会编译不过。
6. 父子项目构建
父项目中要设定模块,这个模块和子项目的id相同:
父项目pom:
<!--项目 id-->
<artifactId>expressway-cloud-travel</artifactId>
<packaging>pom</packaging>
<!-- 子模块-->
<modules>
<module>expressway-cloud-travel-service</module>
</modules>
子项目pom:
<!--项目id-->
<artifactId>expressway-cloud-travel-service</artifactId>
<parent>
<groupId>com.hiscene</groupId>
<!--父项目id-->
<artifactId>expressway-cloud-travel</artifactId>
<version>1.0.0</version>
<relativePath>../pom.xml</relativePath>
</parent>
这里的核心就是在父项目中加module、在子项目中加parent
但这里有一个矛盾,就是子项目中如果用spring boot本身就有一个parent,但一个项目不允许有两个parent,所以必须要把这个parent挪到父项目中。