转载

自己搭建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>

Nexus Repository OSS

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

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

启动过程:

自己搭建Maven服务器私服

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

项目配置

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

自己搭建Maven服务器私服

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

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

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

自己搭建Maven服务器私服

注意我们的仓库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:

自己搭建Maven服务器私服

这里给与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/确认:

自己搭建Maven服务器私服

以上项目源码: github

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

敏捷

原文  https://www.jdon.com/project/my-maven-repository-oss.html
正文到此结束
Loading...