当前位置: 首页 > 图灵资讯 > 技术篇> 【Nexus】Maven从Nexus中下载jar包

【Nexus】Maven从Nexus中下载jar包

来源:图灵教育
时间:2023-07-02 17:15:12

目录
  • 一、前言
  • 二、配置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

一、前言

Maven私服已经在nexus中创建,如果没有,可以借鉴这个博客:【Nexus】Nexus创建Maven私服 确保托管资源库中已有需要拉取的jar包,如果没有,可以借鉴此博客上传jar包:【Nexus】有两种方法可以上传jar包到Nexus。

配置Apache Maven

配置Apache Maven的目的是使用仓库管理,而不是默认使用中央仓库

1、在Mavensetingsetingsngseting.在xml中添加镜像配置,并覆盖中央仓库的默认配置

<?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的路径

【Nexus】Maven从Nexus中下载jar包_jar包

2、将要使用的jar包添加到pom文件中①、查看Nexus托管仓库中需要拉取jar包的坐标,注意组资源库中所有托管资源库和代理资源库中的jar包都可以查看。

【Nexus】Maven从Nexus中下载jar包_jar包_02

【Nexus】Maven从Nexus中下载jar包_java_03

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中也有相应的依赖

【Nexus】Maven从Nexus中下载jar包_maven_04

三、引入依赖时,加载Maven显示无法分析或找到jar包1、当我们下载需要引入的jar包并加载maven项目时,显示cannot resolve XXXXXX,原因是我们上传jar包的路径是snapshot快照库,但maven不能下载snapshot快照库

【Nexus】Maven从Nexus中下载jar包_jar_05

2、maven依赖管理模式

在maven的依赖管理模式中,依赖分为两种版本,一种是Release的正式版本,另一种是Snapshot快照版本。一般版本号后面有RELEASE或者什么都没有的是正式版本,而版本号后面有SNAPSHOT的是快照版本。

【Nexus】Maven从Nexus中下载jar包_jar包_06

Maven对这两个版本的依赖管理方式不同: 1、如果是正式版本的依赖,Maven在建设项目时是否会减少当地仓库的生产。如果没有,去远程仓库取。因为优先考虑本地仓库,如果依赖迭代更新,需要重新发布正式版本,所以正式版本的依赖一般是稳定版本。然而,组间开发引用的其他组的依赖性一直在频繁迭代和更新,因此您无法始终发送官方版本。您需要使用snapshot快照版本。 2、如果依赖于快照版本,Maven将优先检查远程仓库中的快照版本是否更新。如果有更新,将下载到当地,以免始终发布版本。 3、默认情况下,Maven不打开Snapshot版本,需要配置打开

3、Maven打开Snapshot版本拉jar包①、在pom.项目级配置在xml中。

<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>