jar包批量上传到nexus私服

jar包批量上传到nexus私服

近期有个项目大量需要一些jar包,在私服上找不到,用java+mvn命令批量将jar包上传到私服
上传需要 GAV坐标和jar路径(最后是绝对路径)
java代码做处理参数,然后调取bat命令,执行mvn命令
jar包命名格式通常为A-V[-classfiler].jar

public class tt {
	public static void main(String[] args) throws IOException {
		BufferedReader br = null;
		//jar包统一放在这个目录下面
		File file=new File("D:\\lib");
		String tef="F:\\test\\test.bat";
		File[] fs = file.listFiles();
		for (File f : fs) {
			if(f.isFile()){
				
				String path=f.getAbsolutePath();
				String _artifactId = f.getName().substring(0,f.getName().lastIndexOf("-"));
				String _version=f.getName().substring(f.getName().lastIndexOf("-")+1, f.getName().lastIndexOf("."));
				
				//
				String[] cmds={tef,path,_artifactId,_version};
				//processBuilder用法可自行百度,这里用为打开cmd执行命令
				ProcessBuilder pb = new ProcessBuilder(cmds);
				pb.redirectErrorStream(true);
				Process p;
				p = pb.start();
				
				String result = "";
				br = new BufferedReader(new InputStreamReader(p.getInputStream()));
				while ((result = br.readLine()) != null) {
					if(result.trim().endsWith(" KB") || result.trim().endsWith(" B")){
						continue;
					}
					System.out.println(result);
				}
				br.close();
				p.destroy();
				pb.directory();
        }
			
}
}

processBuild处理也可以用下面这个类(已封装)

//mvnScript为执行的mvn命令
	public static void uploadXmlByMvn(String mvnScript){
		boolean isWindows = System.getProperty("os.name").toLowerCase().startsWith("windows");
	    try {
	    	ProcessBuilder builder = new ProcessBuilder();
	    	if (isWindows) {
	    		builder.command("cmd.exe", "/c", mvnScript);
	    	} else {
	    		builder.command("sh", "-c", mvnScript);
	    	}
	    	builder.directory(new File(System.getProperty("user.home")));
	    	Process process = builder.start();
	    	BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
	    	String result = "";
			while ((result = br.readLine()) != null) {
				System.out.println(result);
			}
  
	    }catch (Exception e) {
	        e.printStackTrace(); 
	    }
	}

最后执行的bat命令如下,第一个代码调取时会传四个参数过来,会将第一个bat路径作为第一个参数,所以这里不取,参数从第二个开始(%~1),下面的一个参数 仓库id可以打开私服找到如下图所示处
在这里插入图片描述

echo off
set _FILEPATH=%~1
set _artifactId=%~2
set _VERSION=%~3

mvn  deploy:deploy-file -Dfile=%_FILEPATH%  -DgroupId=com.yss -DartifactId=%_artifactId%  -Dversion=%_VERSION% -Dpackaging=jar -DrepositoryId=仓库id  -Durl=仓库地址

这里没有指定maven配置文件setting.xml文件,会默认选择mavan的setting.xml,如需自行设置,可以 -s 配置文件名
在settings.xml文件中需要配置,私服的账号密码。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值