1、maven setting.xml相关知道点
<servers>
<!-- 如果有搭建自己公司的maven私服,公司内部会把自己的公司的公共jar包上传到maven私服中。
如果私服配置了上传、或读取权限,servers标签需要给出授权信息。 -->
<server>
<id>release-repository</id>
<username>lengyu</username>
<password>abcd456rqa</password>
</server>
</servers>
2、pom.xml相关知识点
<!--定义snapshots库和releases库的nexus地址,此节点放在project根节点下-->
<!-- 在distributionManagement段中配置的是snapshot快照库和release发布库的地址 -->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://maven.kmengfang.com:4900/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://maven.kmengfang.com:4900/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<!-- 注意这里配置的server的id必须和pom文件中的distributionManagement对应仓库的id保持一致,maven在处理发布时会根据id查找用户名称和密码进行登录和文件的上传发布。 -->
3、maven常用插件(plugins)
3.1、源码打包插件:maven-source-plugin
execution下可配置phase属性, 意思是在什么阶段打包源文件。如<phase>package</phase>
执行 mvn install,maven会自动将source install到repository 。
执行 mvn deploy,maven会自动将source deploy到remote-repository 。
执行 mvn source:jar,单独打包源码。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
3.2配置maven依赖构件的远程仓库
<!-- 如果此私服需要授权才能访问,那么id值kmengfang-nexus则一定要在setting.xml中的servers配置 -->
<repositories>
<repository>
<id>kmengfang-nexus</id>
<name>aliyun nexus</name>
<url>http://maven.kmengfang.com:4900/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
3.3配置maven插件的远程仓库
<!--配置Maven从什么地方下载插件构件(如maven-clean-plugin、maven-compiler-plugin等)。
该元素的内部配置和<repository>完全一样-->
<pluginRepositories>
<pluginRepository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://repo1.maven.org/maven2</url>
<releases>
<!--可以从这个仓库下载releases版本的构件,配置与repositories一样-->
<enabled>true</enabled>
</releases>
<!--关闭对SNAPSHOT的支持,防止不稳定的构建-->
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
Maven需要的依赖在本地仓库中不存在时,Maven会去配置的远程仓库中查找
Maven需要的插件在本地仓库中不存在时,Maven不会去这些远程仓库查找。
所以需要我们配置pluginRepositories仓库。