仓库分类:
Nexus内置仓库类型
官网链接:https://www.sonatype.com/nexus-repository-oss
第一个是mac版本, 第二个是windows版本, 第三个是unix版本.
可以选择windows版和linux版,两者区别不大,以windows为例。
下载解压文件后:配置bin目录下nexus.vmoptions文件,适当调整内存参数,防止占用内存太大
就改这三项
etc目录下nexus-default.properties文件可配置默认端口和host及访问根目录。
linux:bin目录下执行sh nexus start启动服务,sh nexus stop停止服务
windows: bin目录下,执行 nexus.exe /run就可以启动了
地址栏访问 localhost:8081,每次启动服务需要等待一会才可以打开
默认登录是游客身份:anonymous,可以查看仓库并下载依赖,但不能配置nexus
使用默认管理员身份登录,帐号:admin,密码:密码:D:\mavenservice\sonatype-work\nexus3\admin.password 中
第一次进去需要修改密码. 这个文件会自动再删除的.
选择maven2(hosted)
version policy 这边决定创建的苍鹭存放是发布版本还是快照版本的建构, 当然可以选择混合
Deployment policy 这边决定发布策略, 选择可以重新发布构建策略
这样就完成了
新建一个common-demo项目,发布jar包出去
修改本地的maven 的 配置conf 文件下 的settings.xml 文件:
添加自己的服务器. 其实就是配置登录的账号密码, 我自己手动修改了密码为123
nexus-release
admin
123
nexus-snapshots
admin
123
Pom配置:
4.0.0
com.onyx
common-demo
1.0.0.release
jar
nexus-release
http://127.0.0.1:8081/repository/demo3/
nexus-snapshots
http://127.0.0.1:8081/repository/demo3/
org.apache.maven.plugins
maven-jar-plugin
3.0.2
**/*.properties
org.apache.maven.plugins
maven-source-plugin
3.0.1
true
compile
jar
一个java工具类
package util;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.CRC32;
/**
* @author zk
* @Description: CRC32 工具类, 从一个源,获取crc32编码
* @date 2019年10月15日14:10:06
*/
public class CRC32Util {
private static final int BUFFER_SIZE = 512;
private static final Long DEFAULT_CODE = 0L;
private CRC32Util() {
}
/**
* 编码
*
* @param data
* @return
*/
public static long encode(String data) {
if (data == null || data.length() == 0) {
return DEFAULT_CODE;
}
return encode(data.getBytes());
}
/**
* 编码
*
* @param data
* @return
*/
public static long encode(byte[] data) {
if (data == null || data.length == 0) {
return DEFAULT_CODE;
}
CRC32 crc32 = new CRC32();
crc32.update(data, 0, data.length);
return crc32.getValue();
}
/**
* 编码
*/
public static long encode(InputStream data) {
if (data == null) {
return DEFAULT_CODE;
}
try {
byte[] buffer = new byte[BUFFER_SIZE];
int read = data.read(buffer, 0, BUFFER_SIZE);
CRC32 crc32 = new CRC32();
while (read > -1) {
crc32.update(buffer, 0, read);
read = data.read(buffer, 0, BUFFER_SIZE);
}
return crc32.getValue();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
执行命名 mvn clean package deploy
再次新建一个maven-demo的项目,引用jar包
其最后的pom文件是:
4.0.0
com.onyx
maven-demo
1.0-SNAPSHOT
nexus-release
nexus-release
http://127.0.0.1:8081/repository/demo3/
true
false
com.onyx
common-demo
1.0.0.release
测试类:
package com.onyx;
import util.CRC32Util;
/**
* @author zk
* @Description:
* @date 2019-10-21 15:33
*/
public class Test {
public static void main(String[] args) {
CRC32Util.encode("123");
}
}
当新建两个仓库一个是release的版本发布, 另外一个作为snapshot的版本发布的时候的配置
只需要修改common-demo的仓库
nexus-release
http://127.0.0.1:8081/repository/demo3/
nexus-snapshots
http://127.0.0.1:8081/repository/demo4/
注意是两个不同的url
在maven-demo的项目引用中, 修改为:
分别配置相关的两个配置, 千万别写错了
nexus-release
nexus-release
http://127.0.0.1:8081/repository/demo3/
true
false
nexus-snapshots
nexus-snapshots
http://127.0.0.1:8081/repository/demo4/
true
false
就可以了. 把 release 和 snapshot 的仓库分开