maven仓库
maven仓库其实就是存放jar包的地方,可以理解为是jar包仓库。主要分为以下几个类别:
-
本地仓库
就是在开发者本地默认的/.m2/repository路径中,这个是本地仓库,maven会将下载的jar包存放到这个位置里面,本地仓库的位置可以通过setting.xml文件进行修改。 -
远程仓库
1、中央仓库中央仓库地址:http://repo1.maven.org/maven2,这些第三方jar包通常都会存放到这个中央仓库中,maven在下载jar包的时候默认会从这个中央仓库中进行下载,但是这个地址是在国外,在国内下载的时候,速度会比较慢,所以我们通常会配置国内的阿里云镜像仓库。
2、maven私服有些开发人员会在公司的内网中搭建一个maven私服,这样的话在内网下载jar包的时候会从这个私服中下载,速度也比较快。 -
使用国内第三方的maven镜像下载
如果你从中央仓库中下载比较慢,并且也不想搭建私服的话,可以从国内的第三方Maven镜像进行下载。这里推荐阿里云提供的maven镜像。
打开你的maven地址中settings.xml文件,在mirrors标签中添加下面内容:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
![](https://img.haomeiwen.com/i20001108/2a390e5fd2312325.png)
maven插件
在阅读详细文档之前我们先来谈谈我自己对maven的一些个人理解,以助于从整体大局上了解maven。
1、maven是什么,用通俗的话来将,maven能帮你构建工程,管理jar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目。
2、使用maven构建的项目均可以直接使用maven build完成项目的编译测试打包,无需额外配置。
3、Maven是通过pom.xml来执行任务的,其中的build标签描述了如何来编译及打包项目,而具体的编译和打包工作是通过build中配置的 plugin 来完成。当然plugin配置不是必须的,默认情况下,Maven 会绑定以下几个插件来完成基本操作。
![](https://img.haomeiwen.com/i20001108/337cf8334b57904a.png)
<build>
<finalName>loan-startup</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
- 插件指定jdk版本号
当你创建好一个maven工程之后,默认的jdk版本是1.5,此时在开发工具中修改其版本之后,刷新maven之后,该maven工程会自动的恢复jdk1.5的版本了,如果需要解决这个问题的话,可以在properties中填写下面内容
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
或者也可以通过maven插件的方式配置,在pom文件中的project标签下查看有没有build标签,如果没有的话手动创建一个,之后在build标签中添加下面内容
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- jdk的版本号 -->
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
plugins和pluginManagement标签
-
区别与联系
1、两者的区别,和我们前面研究过的dependencies和dependencyManagement的区别非常类似。
2、plugins下的plugin是真实使用的,而pluginManagement下的plugins下的plugin则仅仅是一种声明,即你在项目中的pluginManagement下声明了插件,maven不会加载该插件。
3、子项目中可以对pluginManagement下的plugin进行信息的选择、继承、覆盖等。 -
使用示例
<!-- 父pom声明插件,并没有引入插件 -->
<build>
<finalName>loan-startup</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- 子pom引入插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
</plugins>
</build>
1、我们可以看到,子pom文件中,省去了版本、配置细节等信息,只需要指定groupId和artifactId,其他信息均从父pom文件继承。
2、如果子pom文件想定制自己的特定内容,可以另行设置,并会覆盖从父pom文件继承到的内容。
3、需要注意的是,dependencies和dependencyManagement均是project下的直接子元素,但是plugins和pluginManagement却是project下build的直接子元素。
网友评论