在公司或组织内部搭建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>
在你本机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>
下载OSS: https://www.sonatype.com/download-oss-sonatype ,现在是3.0以上版本,下载安装或解压,到bin目录下:
启动过程:
现在我们可以为自己项目建立一个仓库,比如名为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/确认: