maven#dependencyManagement && mirrors && servers
dependencyManagement 用于对版本进行管理,不下载实际的jar包。
如果一个包在dependencyManagement中进行声明了,那么在pom中的<dependencies><dependency>节点下就不用些版本号了。
<!--这里才会真正的下载jar包,对应的jar的版本会去dependencyManagement中去寻找,找不到就报错了,否则就要在下面写出version--> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <!--依赖版本定义,这里只是声明,如果要用到jar,就用我这边规定的版本--> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>0.2.1.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
mirrors:
mirror和repository都是提供jar包下载的地址,但是mirror的优先级更高,如果配置多个mirror,要注意mirrorOf的取值问题。比如我想在阿里云镜像仓库下载jar,然后在私有仓库下载自己的jar可以这样配置:
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>nexus-xingan</id> <mirrorOf>*</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://192.168.100.100:8081/repository/maven-public/</url> </mirror> </mirrors>
servers:
如果想发布jar包到私服或者sonatype,需要在配置文件的servers节点配置服务器的账号密码,类似如下配置:
file:D:\develop\apache-maven-3.5.2\conf\settings.xml
<servers> <server> <id>releases</id> <username>admin</username> <password>xxxx我的密码</password> </server> <server> <id>Snapshots</id> <username>admin</username> <password>xxxx我的密码</password> </server> </servers>
需要注意的是,上面的server->id 要严格对应pom文件中distributionManagement->snapshotRepository->id
file:xxxx/pom.xml
<distributionManagement> <snapshotRepository> <id>Snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </snapshotRepository> <repository> <id>releases</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement>