目录
- 一、前言
- 二、配置Apache Maven
- 1、settings在Maven.在xml中添加一个镜像配置,并覆盖中央仓库的默认配置
- 创建Maven项目,配置pom文件,在Nexus中拉取jar包。
- 1、Mavensetingsetingseting确定配置.xml是否是上一步修改的settingss?.xml文件和repository的路径
- 2、将要使用的jar包添加到pom文件中
- ①、查看Nexus托管仓库中需要提取jar包的坐标,注意组资源库中所有托管资源库和代理资源库中的jar包
- 3、在pom.在xml文件中引入jar包坐标,并且在添加本地repository时没有下载jar包
- ①、jar包坐标
- ②、添加依赖pom后添加pom.xml结构
- 4、重载Maven项目后发现,pom.xml文件中对应的依赖不是冒红的,在dependencies中也有相应的依赖
- 三、引入依赖时,加载Maven显示无法分析或找到jar包
- 1、当我们下载需要引入的jar包并加载maven项目时,显示cannot resolve XXXXXX,原因是:当我们上传jar包时,路径是snapshot快照库,但是maven不能下载snapshot快照库。
- 2、maven依赖管理模式
- 3、开启Snapshot版本,Maven拉取jar包
- ①、在pom.项目级配置在xml中。
- ②、在settings.xml配置全局级的xml
一、前言
配置Apache MavenMaven私服已经在nexus中创建,如果没有,可以借鉴这个博客:【Nexus】Nexus创建Maven私服 确保托管资源库中已有需要拉取的jar包,如果没有,可以借鉴此博客上传jar包:【Nexus】有两种方法可以上传jar包到Nexus。
1、在Mavensetingsetingsngseting.在xml中添加镜像配置,并覆盖中央仓库的默认配置配置Apache Maven的目的是使用仓库管理,而不是默认使用中央仓库
<?xml version="1.0" encoding="UTF-8" standalone="no"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 当地仓库地址 --> <localRepository>D:\workSoftware\Java\maven\repository</localRepository> <!--nexus服务器--> <servers> <!--ID是相应资源库的id--> <server> <id>tfjy-snapshot-hosted</id> <username>admin</username> <password>nexusb-test</password> </server> <server> <id>tfjy-hosted</id> <username>admin</username> <password>nexusb-test</password> </server> <server> <id>nexus</id> <username>admin</username> <password>nexusb-test</password> </server> </servers> <!--url地址组资源库 自定义id和name,Mirrorof的值设置为central--> <mirrors> <mirror> <id>nexus</id> <name>nexus repository</name> <url>http://IP或域名:8089//repository/tfjy-group/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors></settings>
二、创建Maven项目,配置pom文件拉取Nexus中的jar包1、Mavensetingsetingseting确定配置.xml是否是上一步修改的settingss?.xml文件和repository的路径2、将要使用的jar包添加到pom文件中①、查看Nexus托管仓库中需要拉取jar包的坐标,注意组资源库中所有托管资源库和代理资源库中的jar包都可以查看。3、在pom.在xml文件中引入jar包坐标,并且在添加本地repository时没有下载jar包①、jar包坐标<dependency> <groupId>com.tfjybj</groupId> <artifactId>metaverse-demo</artifactId> <version>1.0-20230322.074428-1</version> <type>pom</type></dependency>
②、添加依赖pom后添加pom.xml结构<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tfjybj</groupId> <artifactId>metaverse-common</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.tfjybj</groupId> <artifactId>metaverse-demo</artifactId> <version>1.0-20230322.074428-1</version> <type>pom</type> </dependency> </dependencies></project>
4、重载Maven项目后发现,pom.xml文件中对应的依赖不是冒红的,在dependencies中也有相应的依赖三、引入依赖时,加载Maven显示无法分析或找到jar包1、当我们下载需要引入的jar包并加载maven项目时,显示cannot resolve XXXXXX,原因是我们上传jar包的路径是snapshot快照库,但maven不能下载snapshot快照库2、maven依赖管理模式在maven的依赖管理模式中,依赖分为两种版本,一种是Release的正式版本,另一种是Snapshot快照版本。一般版本号后面有RELEASE或者什么都没有的是正式版本,而版本号后面有SNAPSHOT的是快照版本。
3、Maven打开Snapshot版本拉jar包①、在pom.项目级配置在xml中。Maven对这两个版本的依赖管理方式不同: 1、如果是正式版本的依赖,Maven在建设项目时是否会减少当地仓库的生产。如果没有,去远程仓库取。因为优先考虑本地仓库,如果依赖迭代更新,需要重新发布正式版本,所以正式版本的依赖一般是稳定版本。然而,组间开发引用的其他组的依赖性一直在频繁迭代和更新,因此您无法始终发送官方版本。您需要使用snapshot快照版本。 2、如果依赖于快照版本,Maven将优先检查远程仓库中的快照版本是否更新。如果有更新,将下载到当地,以免始终发布版本。 3、默认情况下,Maven不打开Snapshot版本,需要配置打开
<repositories> <repository> <id>nexus</id> <url>http://IP或域名:8089//repository/tfjy-group/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository></repositories>
②、在settings.在xml中配置全局级配置<profiles> <profile> <id>roncoo-profile</id> <repositories> <repository> <id>nexus</id> <url>http://IP或域名:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile></profiles><activeProfiles> <activeProfile>roncoo-profile</activeProfile></activeProfiles>