基于Window,Docker,IDEA实现安装Nexus,创建私有maven仓库和上传jar包到私有仓库

问题现象:

最近项目中需要在window服务器上搭建maven仓库,于是我就学习了这方面的知识。


问题分析:

1. 首先启动 docker / docker desktop,这里讲解基于 docker desktop 上的学习心得。

 

2. cmd窗口输入:

docker search nexus

 

3. 选择第一个,用的人最多的,输入:

docker pull sonatype/nexus3

 

4. 查看下载的镜像,输入:

docker images

 

5. 在本地创建文件夹 E:/nexus3/nexus-data ,再创建容器,配置自重启和映射路径并启动,输入:

docker run -it -p 8081:8081 --restart=always -v E:/nexus3/nexus-data:/nexus-data/ sonatype/nexus3

 

6. 登录 服务器ip:8081

 

7. 在服务器 E:\nexus3\nexus-data 下,会有一个 admin.password 文件,打开它,并复制其中的内容(不需要解码),将内容复制到Password,然后Username填的是 admin ,登录成功后会需要修改密码,和初始化配置。

翻译意思是:

 

8. 一般情况下选择 Enable anonymous access(启用匿名访问)即可。

配置结束:

 

9.创建私有仓库:

 

10.修改本地 maven 的配置文件 settings.xml:

添加以下代码到servers标签中:

<server> 
	<id>仓库名(如:thpower-bladex)</id> 
	<username>仓库账号(如admin)</username> 
	<password>仓库密码(如admin123)</password> 
</server> 

保存关闭settings.xml文件。

11. 上传 .jar 依赖包 到创建好的私有仓库 thpower-bladex :

11.1首先在需要上传.jar包的模块中的pom文件(项目全部jar包都要上传,则可以在项目最外层的pom.xml)中加入以下代码:

11.2 打开 IDEA 的 Terminal 窗口,输入以下命令:

mvn clean install deploy

假如出现以下红字报错

xxx 401 Unauthorized -> 

意思是服务认证出错(未认证,也就是未登录),有可能是因为本机的maven环境不止一个版本,请查看环境变量中的 MAVEN_HOME 变量配置的路径是否为 IDEA使用的版本,调整为相同版本后再尝试,应该就可以了。

假如出现以下红字报错:

则是因为如果在plugin中添加maven-jar-plugin插件之后,maven会运行两次maven-jar-plugin插件,第一次运行是打包当前工程的jar,第二次运行是执行在plugin中设置的jar,这样的话会生成两个同名jar包,这里就要用到 classifier 这个属性了。classifier 是用来标识不同的jar包的名称的一个分类符,这个属性的值会添加到工程jar包的名称后面。

在pom.xml中的plugins标签中加入以下代码:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <id>service-jar</id>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classifier>bak</classifier> <!-- 生成deploy-0.0.1-SNAPSHOT-bak.jar -->
                <classesDirectory>${project.build.directory}/此处写入报错的project名/</classesDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

11.3 如果加上了还不能解决,估计是因为打包命令缺乏必要参数的原因,把上一步加的插件去掉,然后使用IDEA自带的打包工具,简单方便又快捷:

11.4 到nexus私有仓库查看已上传的依赖包:

猜你喜欢

转载自blog.csdn.net/weixin_42585386/article/details/113527138