IDEA中的 Maven 项目打包成Jar依赖,如何发布到本地仓库、远程仓库?

news2024/9/23 11:21:15

IDEA中的 Maven 项目打包成Jar依赖,如何发布到本地仓库、远程仓库?

默认读者都已经安装好 maven环境,如有不知道如何安装 maven 环境的,请先进行 maven 环境的安装学习教程!

一、创建 maven 项目

按照图中方式,创建一个最简单的 Maven 项目!

在这里插入图片描述

创建的初始项目如下图所示!如果要将打包的项目发布到本地和远程 maven 仓库,则打包方式 packaging 必须为 jar 包形式!!

在这里插入图片描述

二、编写简单的API功能

创建一个工具类,实现简单的冒泡排序功能!

在这里插入图片描述

三、打包发布到本地仓库

1、配置 maven 中的 settings.xml 文件

打包发布到本地仓库,那么必须要先创建好本地仓库。在本地,只需要在 maven 安装目录下的 settiings.xml 文件中配置本地仓库 localRepository 所在的目录即可!!

<?xml version="1.0" encoding="UTF-8"?>

<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
   -->
  <localRepository>D:/Repository/</localRepository>
  
  <pluginGroups></pluginGroups>

  <proxies></proxies>

  <servers></servers>

  <mirrors> 
  </mirrors>
 
  <profiles></profiles>

</settings>
2、打包发布到本地仓库
mvn package install # 执行该命令,会将项目打包成jar包依赖,并发布到本地仓库

或者如下图,依次点击 packageinstall 按钮也可!

在这里插入图片描述

如下图,可以看到本地仓库中已经安装好该 jar 包依赖了,在本地的任何项目中,通过 pom 文件引入该依赖的坐标位置,即可使用!!

在这里插入图片描述

3、测试使用

在本地的其它项目中,通过该 jar 包依赖的坐标进行引入,测试能否正常使用!如下图所示!!

在这里插入图片描述

如下图所示,该依赖包能够正常引入到本地项目中进行使用!发布到本地仓库成功!!

在这里插入图片描述

四、打包发布到远程仓库

1、创建远程仓库

打包发布到远程仓库,那么首先需要创建一个远程的 maven 仓库!这里可以使用阿里云的云效平台免费创建远程 Maven 仓库,地址:https://packages.aliyun.com/

在这里插入图片描述

仓库名称任意起名!!仓库地址任意起名!! release 表示存储稳定版的依赖包,snapshots 表示存储开发版的依赖包!!两个都勾选表示该仓库可以存储两种形式的依赖包!!

在这里插入图片描述

2、配置 maven 中的 settings.xml 文件

要将本地开发好的项目打包成 jar 包,并发布到远程仓库,那么肯定要让 maven 工具知道,我们的 jar 包发布的仓库地址在哪里?远程仓库的访问用户和密码是多少?

因此,需要在 maven 安装目录下的 settings.xml 中配置相关的信息!

<?xml version="1.0" encoding="UTF-8"?>


<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
   -->
  <localRepository>D:/Repository/</localRepository>
  
  <pluginGroups></pluginGroups>

  <proxies></proxies>

  <servers>
    <!-- 访问远程仓库的用户名和密码 -->
    <server>
      <id>origin-maven-test</id>
      <username>66bc59ca9a2728f7f2866860</username>
      <password>你的密码</password>
    </server>
  </servers>
 
  <profiles>
    <profile>
       <!-- 任意起名,表示这份配置的名称,需要与下面activeProfiles中相对应 -->
       <id>rdc</id>
       
       <!-- 推送jar包依赖的远程仓库配置 -->
       <properties>
         <!-- 推送稳定版依赖包的远程仓库地址 -->
         <altReleaseDeploymentRepository>
            origin-maven-test::default::https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test
         </altReleaseDeploymentRepository>
         <!-- 推送开发版依赖包的远程仓库地址 -->
         <altSnapshotDeploymentRepository>
            origin-maven-test::default::https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test
         </altSnapshotDeploymentRepository>
       </properties>
        
     </profile>
  </profiles>

  <activeProfiles>
    <!-- 激活使用的配置 -->
    <activeProfile>rdc</activeProfile>
  </activeProfiles>

</settings>
3、打包发布到远程仓库
mvn package deploy # 执行该命令,会将项目打包成jar包依赖,并发布到远程仓库

或者如下图,依次点击 packagedeploy 按钮也可!

在这里插入图片描述

如下图,可以看到远程仓库中已经拥有该 jar 包依赖了!!在任何项目中,只需要配置拉取该远程仓库中依赖的相关信息,再在 pom 文件中引入该依赖的坐标位置,即可使用!!

在这里插入图片描述

4、测试

在本地项目中,通过该远程 jar 包依赖的坐标进行引入,测试能否正常使用!

注意:这里的测试,需要先删除上一步中本地仓库安装的 jar 包依赖!!!这样才能够测试出能否拉取远程仓库中的 jar 包依赖!

4.1、配置 maven 中的 settings.xml 文件

同样的,要想从远程仓库中拉取项目所需要的 jar 包依赖,同样需要告诉 maven 工具从哪个远程仓库上拉取依赖?访问远程仓库的用户和密码是多少?

<?xml version="1.0" encoding="UTF-8"?>


<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
   -->
  <localRepository>D:/Repository/</localRepository>
  
  <pluginGroups></pluginGroups>

  <proxies></proxies>

  <servers>
    <!-- 访问远程仓库的用户名和密码 -->
    <server>
      <id>origin-maven-test</id>
      <username>66bc59ca9a2728f7f2866860</username>
      <password>你的密码</password>
    </server>
  </servers>
 
  <profiles>
    <profile>
       <!-- 任意起名,表示这份配置的名称,需要与下面activeProfiles中相对应 -->
       <id>rdc</id>
       
       <!-- 推送jar包依赖的远程仓库配置 -->
       <properties>
         <!-- 推送稳定版依赖包的远程仓库地址 -->
         <altReleaseDeploymentRepository>
            origin-maven-test::default::https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test
         </altReleaseDeploymentRepository>
         <!-- 推送开发版依赖包的远程仓库地址 -->
         <altSnapshotDeploymentRepository>
            origin-maven-test::default::https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test
         </altSnapshotDeploymentRepository>
       </properties>
        
       <!-- 拉取jar包依赖的远程仓库配置 -->
       <repositories>
         <repository>
           <id>origin-maven-test</id>
           <!-- 拉取jar包依赖的远程仓库地址 -->
           <url>https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test</url>
           <releases>
             <!-- 可以拉取稳定版的jar包 -->
             <enabled>true</enabled>
           </releases>
           <snapshots>
             <!-- 可以拉取开发版的jar包 -->
             <enabled>true</enabled>
           </snapshots>
         </repository>
       </repositories>
     </profile>
  </profiles>

  <activeProfiles>
    <!-- 激活使用的配置 -->
    <activeProfile>rdc</activeProfile>
  </activeProfiles>

</settings>
4.2 测试使用

如下图所示,该依赖包能够正常引入到本地项目中进行使用!发布到远程仓库成功!!

在这里插入图片描述

在这里插入图片描述

五、其它注意点

我们使用 maven 环境时,大部分是需要下载第三方的 jar 包依赖的,即熟知的 maven 中央仓库!!由于 maven 中央仓库的地址在国外,因此下载速率很

慢!!这里我们可以使用阿里云的仓库镜像地址来进行下载!!其 settings.xml 配置阿里云仓库镜像地址如下!

<?xml version="1.0" encoding="UTF-8"?>

<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
   -->
  <localRepository>D:/Repository/</localRepository>
  
  <pluginGroups></pluginGroups>

  <proxies></proxies>

  <servers></servers>

  <mirrors>
	<!-- 由阿里云提供的Maven中央仓库镜像 -->
	<mirror>
		<id>nexus-aliyun</id>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <!-- 表示需要使用该镜像地址进行依赖下载的仓库,*表示所有仓库中的依赖下载均使用该镜像地址 -->
		<mirrorOf>*</mirrorOf>
	</mirror> 
  </mirrors>
 
  <profiles></profiles>

</settings>

特别注意:如果我们在 settings.xml 中设置了自己的私有远程仓库,那么在配置阿里云的仓库镜像地址时,需要在 <mirrorOf>*</mirrorOf> 中通过 <mirrorOf>*,!仓库ID</mirrorOf> 排除自己的私有仓库,否则在下载自己私有仓库中的依赖时,也会去我们配置的镜像仓库地址中进行下载,这样是下载不到私有仓库中的 jar 包依赖的!!!

最后,整体的 settings.xml 文件内容如下

<?xml version="1.0" encoding="UTF-8"?>


<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
   -->
  <localRepository>D:/Repository/</localRepository>
  
  <pluginGroups></pluginGroups>

  <proxies></proxies>

  <servers>
    <!-- 访问远程仓库的用户名和密码 -->
    <server>
      <id>origin-maven-test</id>
      <username>66bc59ca9a2728f7f2866860</username>
      <password>你的密码</password>
    </server>
  </servers>
 
  <profiles>
    <profile>
       <!-- 任意起名,表示这份配置的名称,需要与下面activeProfiles中相对应 -->
       <id>rdc</id>
       
       <!-- 推送jar包依赖的远程仓库配置 -->
       <properties>
         <!-- 推送稳定版依赖包的远程仓库地址 -->
         <altReleaseDeploymentRepository>
            origin-maven-test::default::https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test
         </altReleaseDeploymentRepository>
         <!-- 推送开发版依赖包的远程仓库地址 -->
         <altSnapshotDeploymentRepository>
            origin-maven-test::default::https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test
         </altSnapshotDeploymentRepository>
       </properties>
        
       <!-- 拉取jar包依赖的远程仓库配置 -->
       <repositories>
         <repository>
           <id>origin-maven-test</id>
           <!-- 拉取jar包依赖的远程仓库地址 -->
           <url>https://packages.aliyun.com/66bc5f73b9168fe4f613ad66/maven/origin-maven-test</url>
           <releases>
             <!-- 可以拉取稳定版的jar包 -->
             <enabled>true</enabled>
           </releases>
           <snapshots>
             <!-- 可以拉取开发版的jar包 -->
             <enabled>true</enabled>
           </snapshots>
         </repository>
       </repositories>
     </profile>
  </profiles>

  <activeProfiles>
    <!-- 激活使用的配置 -->
    <activeProfile>rdc</activeProfile>
  </activeProfiles>
        
  <mirrors>
	<!-- 由阿里云提供的Maven中央仓库镜像 -->
	<mirror>
		<id>nexus-aliyun</id>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <!-- 表示需要使用该镜像地址进行依赖下载的仓库,*表示所有仓库中的依赖下载均使用该镜像地址,!表示排除哪些仓库 -->
		<mirrorOf>*,!origin-maven-test</mirrorOf>
	</mirror> 
  </mirrors>
</settings>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2050741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python:画由两条抛物线所围成的图形

《高等数学》同济大学版 P338 编写 test_diff_2_area.py 如下 # -*- coding: utf-8 -*- """ 画由两条抛物线: ysqrt(x) , yx^2 所围成的图形的面积 """ import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import…

[算法题]排序数组

题目链接: 排序数组 快速排序求解 两个重点: 1. 选取随机数做 key, 不止固定选最左边的数做 key, 避免在数据有序时退化成 O(n^2) 的时间复杂度, 取 key 下标公式: rand() % (end - begin 1) begin (加上begin偏移, 保证当前的 key 在当前的区间内) 2. 三段划分, 将区间划…

MySQL中处理JSON数据

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言 在大数据时代&#xff0c;处理和分析结构化与非结构化数据的能力对于企业的成功至关重要。MySQL作为一种广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;在应对传统结构化数据方面表现出色。然…

【html+css 绚丽Loading】 - 000003 乾坤阴阳轮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

python基础篇(15):闭包

在函数嵌套的前提下&#xff0c;内部函数使用了外部函数的变量&#xff0c;并且外部函数返回了内部函数&#xff0c;我们把这个使用外部函数变量的内部函数称为闭包。 1 简单闭包 def outer(logo):def inner(msg):print(f"<{logo}>{msg}<{logo}>")retu…

yolov5网络初始化问题

当你打印detect层的三个特征层时&#xff0c;发现有三种不同的长和宽&#xff0c;如下图所示&#xff1a; 我提出三个问题&#xff1a; 为什么不一样呢&#xff0c;输入有什么含义吗&#xff1f; 为什么网络初始化四次&#xff08;forward)&#xff1f; 下面来逐个击破 1. torc…

LeetCode - LCR 146- 螺旋遍历二维数组

LCR 146题 题目描述&#xff1a; 给定一个二维数组 array&#xff0c;请返回「螺旋遍历」该数组的结果。 螺旋遍历&#xff1a;从左上角开始&#xff0c;按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c;然后再进入内部一层重复相同的步骤&#xff0c;直到提取完…

模型训练坎坷路--逐步提升模型准确率从40%到90%+

文章目录 〇、前言一、更改学习率1.原理&#xff1a;欠拟合需要减小学习率2.效果-->有用&#xff01; 二、更改训练批次batch_size1.原理&#xff1a;更大的批量大小时&#xff0c;梯度估计更加精确2.效果-->有点用 三、更改数据预处理方式1.原理&#xff1a;数据可能没有…

【微服务】springboot 整合表达式计算引擎 Aviator 使用详解

目录 一、前言 二、表达式计算框架概述 2.1 规则引擎 2.1.1 什么是规则引擎 2.1.2 规则引擎用途 2.1.3 规则引擎使用场景 2.2 表达式计算框架 2.2.1 表达式计算框架定义 2.2.2 表达式计算框架特点 2.2.3 表达式计算框架应用场景 2.3 表达式计算框架与规则引擎异同点 …

二叉树练习习题集一(Java)

1. 思路&#xff1a; 就是让左孩子和右孩子进行交换&#xff0c;这里需要一个中间变量用来记录&#xff0c;然后完成交换。如果进行优化则添加当左孩子和右孩子都为null时直接返回。 class Solution {public TreeNode invertTree(TreeNode root) {TreeNode tmpnull;//用来进行…

C++适配windows和linux下网络编程TCP简单案例

C网络编程 网络协议是计算机网络中通信双方必须遵循的一套规则和约定&#xff0c;用于实现数据的传输、处理和控制。这些规则包括了数据格式、数据交换顺序、数据处理方式、错误检测和纠正等。网络协议是使不同类型的计算机和网络设备能够相互通信的基础&#xff0c;是网络通信…

PDF转markdown工具:magic-pdf

1. magic-pdf 环境安装 conda create -n MinerU python3.10 conda activate MinerU pip install boto3>1.28.43 -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install magic-pdf[full]0.7.0b1 --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.t…

SSA-SVM多变量回归预测|樽海鞘群优化算法-支持向量机|Matalb

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&a…

Chrome浏览器更改默认User-Agent

一、业务需求 二、插件下载 三、插件使用 原创文章&#xff0c;请勿转载&#xff01; 详细教程教你如何更改默认浏览器的User-Agent&#xff0c;几分钟足以&#xff01; 一、业务需求 当我们遇到一些特定的UA才能访问的网址时&#xff0c;我们就可以通过一些手段来修改我们浏…

Python之字符串练习题(下)

21.nameStr“Albert Einstein"&#xff0c;如何使用字符串运算符“:”来提取 nameStr 中的名和姓? mingnameStr[:6] xingnameStr[7:]23.下面哪些语句在运行时不会出错? (a)var xyz ’ * 10.5 (b)var ‘xyz’ * ‘5 ©var‘’xyz’*5 (d)var‘xyz’*5.0 重复运算符…

HTML静态网页成品作业(HTML+CSS)——美食企业介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

在亚马逊云科技上对Stable Diffusion模型提示词、输出图像内容进行安全审核

项目简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍的是如何在亚马逊云科技机器学习托…

HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输

HighPoint Technologies推出了一款全新的SSD7749M2 RAID卡&#xff0c;能够在标准的桌面工作站中安装多达16个M.2 SSD&#xff0c;实现高达128TB的闪存存储。该卡通过PCIe Gen4 x16接口提供高达28 GB/s的顺序读写性能。这些令人瞩目的性能规格伴随着高昂的价格标签。 #### 技术…

ArcGIS Pro基础:设置快速访问工具栏

上图【红色框线】内显示就是快速访问工具栏&#xff0c;访问非常方便&#xff0c;不需要切换到选项卡了 上图显示&#xff0c;可以勾选或者取消进行设置&#xff0c;通过【更多命令】可以选择更多的工具 如上图所示&#xff0c;可以选择自己经常使用的命令&#xff0c;可以输入…

手撕线程池

1.手撕线程池原理图 2.代码实现 // 手撕线程池 public class Main {public static void main(String[] args) {ThreadPool threadPool new ThreadPool(1,1000,TimeUnit.MILLISECONDS,1,(queue, task) -> {queue.putByTime(task,1500,TimeUnit.MILLISECONDS);});for (int i…