【Nexus】Maven从Nexus中下载jar包

简介: 【Nexus】Maven从Nexus中下载jar包

一、前言

已经在nexus中创建了Maven私服,如果没有创建,可以借鉴此博客:【Nexus】Nexus创建Maven私服

确保托管资源库中已经有需要拉取的jar包,如果没有,可以借鉴此博客进行上传jar包:【Nexus】上传jar包至Nexus的两种方式

二、配置Apache Maven

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

1、在Maven的settings.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、确定配置的Maven的settings.xml是否是上一步修改的settings.xml文件,以及repository的路径

2、在pom文件中添加要使用的jar包依赖

①、在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.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的则是快照版本

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>


相关文章
|
3月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
3月前
|
敏捷开发 Java 测试技术
阿里云云效产品使用合集之如何下载流水线构建过程中生成的jar
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
3月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
17天前
|
Java Maven
maven打瘦包,且只打入部分想打入的依赖瘦包
maven打瘦包,且只打入部分想打入的依赖瘦包 设计 工程结构分析 环境管理 城市资源 安全工程 工程管理
43 10
|
14天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
38 3
|
1月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
109 1
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
3月前
|
安全 Java Maven
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
592 3
|
3月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)

推荐镜像

更多
下一篇
无影云桌面