自己搭建Maven服务器私服

  在公司或组织内部搭建Maven服务器可以实现组织内模块或库包代码共享,本文讨论使用Nexus Repository OSS开源服务器如何搭建公司内部的Maven生态。

  当然除了使用 Nexus Repository OSS比较正规管理以外,如果是简单可以共享的库包也可以使用http等方式共享,这种方式比较简单易行,先简单谈一下这种方式。

本地库

  由于Maven不支持商业产品Oracle数据库,需要建立本地库,建立本地库的办法是,下载oracle jdbc驱动,然后键入:

mvn install:install-file -Dfile=ojdbc8.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar

这就在Maven本地建立了jdbc的jar包库包,然后你就可以在自己电脑上使用pom.xml配置访问:

<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>

 

Http服务器库

  在你本机maven仓库目录找到mavenrep\com\oracle\ojdbc8,现在可以将从com开始的目录com\oracle\ojdbc8整个复制到http服务器上,比如我可以上传到github服务器:

https://github.com/banq/jdon-mvn-repo/raw/master/releases

这样我们在pom.xml中就使用如下配置可以获取到这个http服务器上的库包:

<repositories>  
<repository>
<id>jdon-jdbc</id>
<url>https://github.com/banq/jdon-mvn-repo/raw/master/releases</url>
</repository>
</repositories> <dependency>
<groupId>com.jdon</groupId>
<artifactId>jdon-jdbc</artifactId>
<version>6.6.4</version>
</dependency>

 

Nexus Repository OSS

  下载OSS:https://www.sonatype.com/download-oss-sonatype,现在是3.0以上版本,下载安装或解压,到bin目录下:

  1. 在像Linux这样的类Unix平台上使用命令: ./nexus run
  2. 在Windows中,使用命令: nexus.exe /run

启动过程:

  1. 打开浏览器并输入URL:http://localhost:8081/ 将显示Nexus Repository Manager欢迎屏幕。
  2. 在NXRM欢迎屏幕右上角上,单击“ 登录signin”。将显示“登录”弹出框。
  3. 输入默认用户名,即“ admin ”和默认密码,即“ admin123”
  4. 单击“ 登录”。登录对话框已关闭,您已登录NXRM。

 

项目配置

  现在我们可以为自己项目建立一个仓库,比如名为my-repository,找到创建仓库的按钮:

进去后,选择maven2(hosted),如果你像做互联网上仓库的缓存代理,就选择maven2(proxy),hosted就是自己的私库。

名字输入 my-repository,其他可以默认,最下面一行选择Allow redeploy,这样可以反复试验,保存即可。

创建好后,可以在仓库列表中看到我们的仓库名称为my-repository,点按进入:

注意我们的仓库URL是:

http://127.0.0.1:8081/repository/my-release/

这样在我们项目中的pom.xml可以配置这个地址发布了:

<!-- 打包发布 -->
<distributionManagement>
<repository>
<id>my-release</id><!--这个ID需要与你的release仓库的Repository ID一致-->
<url>http://127.0.0.1:8081/repository/my-release/</url>
</repository>

</distributionManagement>

当然访问这个地址需要用户名和密码。

下一步设置用户名和密码,首先创建一个角色,比如testRole:

这里给与testRole的权限我们选择的是nx-all,熟悉之后,可以进行详细的定制。

然后选择右边users,创建本地用户,角色role选择我们建立的testRole。注意记住用户名和密码,需要在maven的 settings.xml中配置:

<server>
<id>my-release</id>
<username>test</username>
<password>test</password><!--这个密码就是你设置的密码-->
</server>

这里my-release就是我们的仓库名称,用户和密码是创建本地用户你设置的。

pom.xml文件最后是这样:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
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.example</groupId>
<artifactId>wwww</artifactId>
<version>1.0</version>

<!-- 打包发布 -->
<distributionManagement>
<repository>
<id>my-release</id><!--这个ID需要与你的release仓库的Repository ID一致-->
<url>http://127.0.0.1:8081/repository/my-release/</url>
</repository>

</distributionManagement>

</project>

 

发布配置

  现在可以在项目中运行mvn clean deploy发布了,在 Idea执行deploy之后控制台输出如下:

[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ wwww ---
Uploading: http://127.0.0.1:8081/repository/my-release/com/example/wwww/1.0/wwww-1.0.jar
Uploaded: http://127.0.0.1:8081/repository/my-release/com/example/wwww/1.0/wwww-1.0.jar (3 KB at 11.0 KB/sec)
Uploading: http://127.0.0.1:8081/repository/my-release/com/example/wwww/1.0/wwww-1.0.pom
Uploaded: http://127.0.0.1:8081/repository/my-release/com/example/wwww/1.0/wwww-1.0.pom (917 B at 7.6 KB/sec)
Downloading: http://127.0.0.1:8081/repository/my-release/com/example/wwww/maven-metadata.xml
Downloaded: http://127.0.0.1:8081/repository/my-release/com/example/wwww/maven-metadata.xml (291 B at 3.2 KB/sec)
Uploading: http://127.0.0.1:8081/repository/my-release/com/example/wwww/maven-metadata.xml
Uploaded: http://127.0.0.1:8081/repository/my-release/com/example/wwww/maven-metadata.xml (291 B at 3.3 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

最后到http://127.0.0.1:8081/确认:

 

以上项目源码:github

如何将自己的开源项目发布到Maven中央仓库中?

敏捷