0x01来由
随着开发业务的不断开展, 会出现相同的业务功能代码在不同的项目中贴来贴去.
本着不想偷懒的程序员决逼不是好橱子的精神, 决定优化一下开发体验.
由于是公司业务相关代码, 故只能选择在内网环境搭建服务.
0x02 Nexus服务器软件搭建
- 前提: java1.8已经安装
- 账号创建:
useradd nexus
passwd nexus
su - nexus
软件下载:
主页 : https://www.sonatype.com/download-oss-sonatype
本文使用版本:
https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.19.1-01-unix.tar.gz把软件解压到用户目录下
修改端口:
vim /home/nexus/nexus-3.19.1-01/etc/nexus-default.properties
# 这个端口改为希望使用的服务端口
application-port=10000
- 启动
/home/nexus/nexus-3.19.1-01/bin/nexus start
启动完成后通过 IP:PORT 进行访问
0x03 关于Admin密码
第一次登录时, 会提示使用 admin
登录,
密码内容保存在服务器文件中 :/home/nexus/sonatype-work/nexus3/admin.password
修改成新密码后, 这个文件会消失, 注意保存密码
0x04 创建一个私库(hosted)存储节点(repo)
这一步需要注意的点, 如下图所示: 节点名称, 还有允许重发布
点击COPY, 就可以拿到私库的访问地址
0x05 提交一个版本到私库
使用IDEA 创建一个空的 maven 项目
留意一下 groupId相关信息, Version中使用纯数字.
-
创建测试代码:
编写
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.gorey</groupId>
<artifactId>SayHello</artifactId>
<version>0.0.1</version>
<distributionManagement>
<repository>
<id>com-repo</id>
<url>http://HOST:10000/repository/com-repo/</url>
</repository>
</distributionManagement>
</project>
- 编写仓库访问密码
打开本机 maven 的设置文件 , 缺省文件在 %HOME%/.m2/settings.conf
在servers
节点下添加
<server>
<id>com-repo</id>
<username>admin</username>
<password>PASSWD</password>
</server>
留意, id需和 pom.xml里的一致.
- 向仓库提交
项目目录下, 执行命令行:mvn deploy
即可
完成后, 可以在服务端查看
0x06 使用私库的版本
创建一个空的 maven工程
-
在maven网页查找依赖项信息
编辑pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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.demo</groupId>
<artifactId>RepoDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>com-repo</id>
<url>http://HOST:10000/repository/com-repo/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.gorey</groupId>
<artifactId>SayHello</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
</project>
- 编写测试代码并运行
public class Main {
public static void main(String[] args) {
System.out.println(SayHello.say("国服最坑开发"));
}
}
0x07 完
谢谢观赏, 感觉这个流程真的好简单, 接下来的工作, 就是去提取代码入库 - -!!!