maven * 搭建与使用教程
作者:雙湖之梦 发布时间:2022-05-09 06:23:56
概述
在使用maven进行Java项目的开发过程中,难免会有些公共的私有库,这些库是不太方便放到中央仓库的,可以通过Nexus搭建一个私有仓库。
Nexus部署
下载安装包
通过下载安装包nexus-3.47.1-01-unix.tar.gz。
安装
解压安装包
Nexus安装非常简单,只需要解压就可以了。假设安装目录为/opt/software/nexus
tar zxvf nexus-3.47.1-01-unix.tar.gz
解压之后,在/opt/software/nexus
目录下,有2个目录:
nexus-3.47.1-01:程序目录,包含了 nexus运行需要的组件;
sonatype-work:数据目录,包含了 nexus 管理的所有存储库、组件和其他数据。
启动程序
执行如下命令,启动nexus:
nexus-3.47.1-01/bin/nexus start
启动之后,就可以使用。默认访问地址为:http://localhost:8081/
安装问题集锦
找不到jdk
执行启动命令,找不到jdk。
No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be 1.8.
Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
由于Nexus只支持Java8,如果机器上的JDK版本高于8,则需要另外安装下Java8,并通过配置环境变量INSTALL4J_JAVA_HOME
来解决。环境变量如下:
# INSTALL4J_JAVA_HOME是Java8的JAVA_HOME
export INSTALL4J_JAVA_HOME='/opt/jdk1.8.0_202'
启动后,8081端口打不开,无法访问
确认下,服务器是否开启了防火墙
默认密码
Nexus的默认密码放在${HOME}/sonatype-work/nexus/admin.password
文件里,我的就是/opt/software/nexus/sonatype-work/nexus/admin.password
,通过如下命令,拿到密码就可以登录了
cat /opt/software/nexus/sonatype-work/nexus/admin.password
使用
从 * 里下载Jar
在需要下载私包的pom文件内,配置 * 地址就可以了,具体如下:
<repositories>
<repository>
<!-- Maven 自带的中央仓库使用的Id为central 如果其他的仓库声明也是用该Id就会覆盖中央仓库的配置 -->
<id>raina-releases</id>
<layout>default</layout>
<name>releases</name>
<!-- 这里的IP改成具体服务器IP -->
<url>http://{$IP}:8081/nexus/content/repositories/releases</url>
</repository>
</repositories>
发布私包
配置Nexus密码
在Maven的settings.xml里(一般路径为:${MVN_HOME}/conf/settings.xml),添加如下配置:
<server>
<id>customNexus</id>
<username>admin</username>
<!-- admin的登录密码,使用默认密码登录后,会修改成自定义的密码 -->
<password>admin123</password>
</server>
pom.xml里添加仓库配置
在待发布的项目pom.xml添加如下配置:
<distributionManagement>
<repository>
<id>customNexus</id>
<name>custom Nexus Release Repository</name>
<!-- 这里的IP改成具体服务器IP -->
<url>http://{$IP}:8081/repository/maven-releases/</url>
<layout>default</layout>
</repository>
</distributionManagement>
发布
执行如下命令,则可以将私包发布到 * 了:
mvn clean deploy
发布问题
如果包无法delopy,可以修改仓库策略:
来源:https://blog.csdn.net/shuanghujushi/article/details/129559239


猜你喜欢
- 我们知道Eclipse创建的工程默认是有个assets文件夹的,但是Android studio默认没有帮我们创建,那么我们就自己创建一个就
- 请求进入DispatcherServlet的doDispatch后,获取HandlerMethod。然后根据HandlerMethod来确认
- 面试题1:谈一下你对 Nginx 的理解Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP
- 解法1: 我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总的时间复杂度为O(n*logn + k)。解法2: 利用选择排序或交
- 前言在上一章节Spring和Mybatis整合的原理详解中有写到Spring和MyBatis整合时用到的Bean扫描是Spring本身提供的
- 简单介绍synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句
- 本文主要讲解Android浏览器的开发实例,有三部分内容:启动Android默认浏览器、指定浏览器进行访问以及打开本地的htm
- 一、引言之前小编讲了MP从入门到核心功能的使用,接下来这几天小编会把MP在实际项目中,一些常用的高级功能给记录一下。高级功能分为:逻辑删除、
- for循环和foreach循环其实可以算得上是从属关系的,即foreach循环是可以转化成for循环,但是for循环不一定能转换成forea
- 前言不知道大家对const和readonly这两个关键字的区别有什么了解,原来自己之前还真不清楚它们到底是怎么回事,那么如果你也不是很清楚的
- 线程(Thread)是并发编程的基础,也是程序执行的最小单元,它依托进程而存在。一个进程中可以包含多个线程,多线程可以共享一块内存空间和一组
- 背景介绍公司最近做分库分表业务,接入了 Sharding JDBC,接入完成后,回归测试时发现好几个 SQL 执行报错,关键这几个表都还不是
- C# 中同样支持多维数组(也可称为矩形数组),它可以是二维的,也可以是三维的,多维数组中的数据以类似表格(行、列)的形式存储,因此也被称为矩
- 本文实例讲述了C#执行存储过程并将结果填充到GridView的方法。分享给大家供大家参考,具体如下:SelectSql sq = new S
- IoC的概念介绍控制反转(IOC)模式(又称DI:Dependency Injection)就是Inversion of Control,控
- 一般情况下在Word中输入的文字都是横向的,今天给大家分享两种方法来设置/更改一个section内的所有文本的方向及部分文本的方向,有兴趣的
- HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决
- 1、概述之前写了一个Android * QQ5.0 侧滑菜单效果 自定义控件来袭 ,恰逢QQ5.2又加了一个右侧菜单,刚好看了下Drawe
- 为了实现毛玻璃效果,我们需要一组compute kernels(.rs文件中编写),及一组用于控制renderScript相关的Javaap
- SpringMVC通过模型视图ModelAndView渲染视图大致流程代码样例1.准备工作A.因为文中用到jsp,所以需要引入jsp标准标签