通过Java代码的方式将jar包以及快照上传至nexus上,通过与chatgpt对话的方式完成

通过Java代码的方式将jar包以及快照上传至nexus上

  • release库
  • snapshots库

与chatgpt的对话

在这里插入图片描述

release库

release库的直接在nexus页面上找接口就可以,通过restTemplate调用即可成功

import org.springframework.core.io.FileSystemResource;
import org.springframework.http.*;
import org.springframework.http.client.support.BasicAuthorizationInterceptor;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;import java.io.File;public class testUpload {public static void main(String[] args)  {String r = "test"; // release 仓库名String g = "com"; // groupIdString a = "aaa"; // artifactIdString v = "1.0.0"; // versionString p = "jar"; // 文件类型String c = "";String e = "jar";File file;RestTemplate restTemplate = new RestTemplate();String username = "your-username";String password = "your-password";restTemplate.getInterceptors().add(new BasicAuthorizationInterceptor(username, password));String filename = "D:\\path\\***.jar";file = new File(filename);FileSystemResource resource = new FileSystemResource(file);MultiValueMap<String, Object> requestMap = new LinkedMultiValueMap<>();// add的顺序不能乱 否则会报401错误requestMap.add("r", r);requestMap.add("g", g);requestMap.add("a", a);requestMap.add("v", v);requestMap.add("p", p);requestMap.add("c", c);requestMap.add("e", e);requestMap.add("file", resource);HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.MULTIPART_FORM_DATA);HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(requestMap, headers);test(restTemplate,requestEntity);}public static void test(RestTemplate restTemplate ,HttpEntity<MultiValueMap<String, Object>> requestEntity){// nexus/service/local/artifact/maven/content 这是个固定的接口 在nexus上点击上传就是调用的这个接口String url = "http://ip:8081/nexus/service/local/artifact/maven/content";ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);}
}

snapshots库

snapshots库不允许手动上传,所以找不到接口比较难搞,通过对chatGpt提问的方式找到了方法
下面的方法由gpt直接生成,只是改了NEXUS_API_URL 以及username、password一把就跑成功了

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;public class NexusSnapshotUploader {/*** NEXUS_API_URL  可以通过在url后拼接的方式添加 groupId artifactId*/private static final String NEXUS_API_URL = "http://ip:8081/nexus/content/repositories/snapshots/test/";public static void main(String[] args) throws IOException {File snapshotFile = new File("D:\\path\\*****.jar");String snapshotFileName = snapshotFile.getName();byte[] snapshotBytes = Files.readAllBytes(snapshotFile.toPath());String encodedFile = new String(Base64.encodeBase64(snapshotBytes), "UTF-8");// Create a HTTP clientHttpClient httpClient = HttpClients.createDefault();// Create a HTTP post request with the API URLHttpPost httpPost = new HttpPost(NEXUS_API_URL + snapshotFileName);// Add headershttpPost.setHeader(HttpHeaders.AUTHORIZATION, "Basic " + getEncodedCredentials());httpPost.setHeader(HttpHeaders.CONTENT_TYPE, ContentType.MULTIPART_FORM_DATA.toString());// Build a multipart request bodyHttpEntity httpEntity = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE).addBinaryBody("raw.asset1", snapshotBytes, ContentType.DEFAULT_BINARY, snapshotFileName).addTextBody("raw.asset1.filename", snapshotFileName).addTextBody("raw.asset1.extension", "jar").addTextBody("raw.asset1.classifier", "snapshot").addTextBody("raw.asset1.md5", getMD5(snapshotBytes)).addTextBody("raw.asset1.sha1", getSHA1(snapshotBytes)).build();// Set the request bodyhttpPost.setEntity(httpEntity);// Send the HTTP post requestHttpResponse response = httpClient.execute(httpPost);// Print the response status code and bodySystem.out.println(response.getStatusLine().getStatusCode());System.out.println(EntityUtils.toString(response.getEntity()));}// Helper method to get the Base64-encoded credentialsprivate static String getEncodedCredentials() {String username = "your-username";String password = "your-password";String credentials = username + ":" + password;byte[] encodedCredentials = Base64.encodeBase64(credentials.getBytes());return new String(encodedCredentials);}// Helper method to get the MD5 hash of a byte arrayprivate static String getMD5(byte[] bytes) throws IOException {return DigestUtils.md5Hex(bytes);}// Helper method to get the SHA-1 hash of a byte arrayprivate static String getSHA1(byte[] bytes) throws IOException {return DigestUtils.sha1Hex(bytes);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/52239.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chrome插件推荐

chrome插件推荐 chrome的一些插件, 真的能很大程度上提升我们的工作效率。而且chrome的插件极其丰富, 基本你想要的功能,都能找到对应的插件&#xff0c;接下来给大家推荐几个我自己在用的。 插件 1、Momentum 新标签页 简介: 超漂亮的新标签页面。每日更新精彩背景壁纸图片&…

2022 开放原子全球开源峰会 OpenAnolis 分论坛携干货来袭

开源运动伊始&#xff0c;Linux 操作系统作为 GNU 运动最有力的补充&#xff0c;成为所有开源人心中经典的开源项目代表。 Linux 社区是当前全球最大也是最知名的开源社区&#xff0c;在 Linux 操作系统的温床之上&#xff0c;衍生出了许多深受开发者喜爱的开源操作系统&#…

免费开放注册| 首次!微软全球八大研究院齐聚,带你尽享全球学术盛宴

由微软全球八大研究院携手倾力打造的首届微软研究峰会 Microsoft Research Summit 2021将于10月19日至21日在线上举办。来自全球科技界、学术界、工业界的同仁们将相聚云端&#xff0c;激荡智慧&#xff0c;共同探讨拓展科技边界的前沿研究&#xff0c;以多元视角呈现科技创新中…

2022 SDCon 全球软件研发技术大会,19大技术主题破企业之寒

随着信息革命的飞速发展&#xff0c;软件已深入人类生活的方方面面&#xff0c;深刻而彻底地改造了人类世界。Boolan秉承“全球专家、卓越智慧”的宗旨&#xff0c;我们特邀近40位全球软件领域的技术领袖以及一线实战专家&#xff0c;融合主题演讲、互动研讨、案例分享、高端培…

24位出品人已确认,开放原子全球开发者大会(OADC)分论坛速览

开源已成为全球软件技术和产业创新的主导模式&#xff0c;是技术应用和产业数字化发展的基石&#xff0c;支持开源&#xff0c;发展开源&#xff0c;将是我国实现技术创新和突破的有效途径。国家软件发展战略将培育开源生态作为重点任务&#xff0c;国民经济和社会发展“十四五…

2022 CCF中国开源大会—开放原子开源创新发展论坛即将开幕

开源已经成为全球数字科技创新发展的大趋势。"行业发展&#xff0c;人才先行"&#xff0c;开源生态的繁荣发展&#xff0c;离不开人才的培育。推进开源教育、建立产学研一体化开源创新人才培养体系显得至关重要。开放原子开源基金会作为中国首家开源基金会&#xff0…

2021年大学生可以参加的科创竞赛-最全信息汇总

2021年大学生可以参加的30个科创竞赛-信息汇总&#xff08;一&#xff09; 1. “中国软件杯”大学生软件设计大赛&#xff1a;2. “泰迪杯”数据挖掘挑战赛&#xff1a;3. 未来杯高校AI挑战赛&#xff1a;4. “发现杯”全国大学生互联网软件设计大奖赛&#xff1a;5. “华为云杯…

中兴通讯 2022第二届未来IP网络发展论坛完美落幕,携手探索未来创新

最近中兴通讯在北京举办了2022第二届未来IP网络发展论坛&#xff0c;这已经是中兴举办该论坛的第二个年头&#xff0c;意义非凡&#xff0c;值得一提的是&#xff0c;中兴通讯在本次论坛邀请了中国信息通信研究院和三大运营商参与&#xff0c;与此同时他们还共同签署并发布了《…

报名丨麻省理工科技评论全球新兴科技峰会(北京)

由麻省理工科技评论在全球举办了超过 18 年的 EmTech 新兴科技峰会即将落地中国。 谷歌、亚马逊、高通、英伟达、IBM、ARM、D-Wave、麻省理工学院、宾夕法尼亚大学、阿里巴巴、腾讯、科大讯飞、华大基因、富士康、Hyperledger、DFJ、Flagship、Third Rock、金沙江创投...... …

CSDN获评2022年科创中国开源创新榜「开源机构」

2月20日&#xff0c;中国科协召开2023“科创中国”年度会议&#xff0c;会上正式发布了2022年“科创中国”系列榜单&#xff0c;CSDN获评开源创新榜“开源机构”。“科创中国”联合体理事长、中国工程院院士周济&#xff0c;中国科协副主席、中国工程院院士陈学东&#xff0c;中…

2022 CCF中国软件大会(CCF ChinaSoft)“开源软件”论坛 成功召开

2022年11月25日上午&#xff0c;2022年度CCF中国软件大会开源软件论坛成功召开。 开源软件论坛是依托中国计算机学会软工专委在中国软件大会上持续组织的一个重要活动&#xff0c;旨在促进围绕开源软件开发、生态建设&#xff0c;以及供应链安全的学术研究与业界需求深度交流的…

激动人心,2022开放原子全球开源峰会报名火热开启

开源不仅仅是一种技术&#xff0c;更是一种引领发展和变革的理念&#xff0c;连接全球开发者共享知识、共建技术。在全球经济数字化转型的浪潮中&#xff0c;鼓励全球开放、合作、创新的开源软件生态发挥着举足轻重的作用。 当前&#xff0c;开源已覆盖软件开发的全领域场景&a…

激动人心!2022 开放原子全球开源峰会报名火热开启!

开源不仅仅是一种技术&#xff0c;更是一种引领发展和变革的理念&#xff0c;连接全球开发者共享知识、共建技术。在全球经济数字化转型的浪潮中&#xff0c;鼓励全球开放、合作、创新的开源软件生态发挥着举足轻重的作用。 当前&#xff0c;开源已覆盖软件开发的全领域场景&a…

《2022联邦学习全球研究与应用趋势报告》重磅发布,全景展示技术热点与人才画像

本报告为智谱AI团队独家所有&#xff0c;并拥有唯一著作权。智谱研究报告提供给订阅用户使用&#xff0c;仅限于用户内部使用。如引用、刊发&#xff0c;需注明出处为【智谱研究】&#xff0c;且不得对本报告进行有悖原意的删节与修改。 9 月1日至3日&#xff0c;2022世界人工智…

2022 CCF中国开源大会—开放原子开源创新发展论坛顺利举办!

11月5日—6日&#xff0c;由开放原子开源基金会和中国计算机学会联合主办的2022 CCF中国开源大会&#xff08;2022 CCF ChinaOSC&#xff09;于线上成功召开。11月6日&#xff0c;由开放原子开源基金会、中国计算机学会主办&#xff0c;腾讯云计算&#xff08;北京&#xff09;…

斯坦福、Nautilus Chain等联合主办的 Hackathon 活动,现已接受报名

由 Stanford Blockchain Accelerator、Zebec Protocol、 Nautilus Chain、Rootz Lab 共同主办的黑客松活动&#xff0c;现已接受优秀项目提交参赛申请。 在加密行业发展早期&#xff0c;密码极客们就始终在对区块链世界基础设施&#xff0c;在发展方向的无限可能性进行探索。而…

港科夜闻|香港科大成立亚洲首个跨国人工智能芯片设计研发联盟

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大成立亚洲首个跨国人工智能芯片设计研发联盟。为了推动创新和培育人才&#xff0c;为人工智能驱动的未来做好准备&#xff0c;香港科技大学联同斯坦福大学、香港大学和香港中文大学携手成立亚洲首个研发人工智能芯…

2023开放原子全球开源峰会分论坛即将来袭,Pick你最关注的峰会话题!

2023开放原子全球开源峰会即将开启 二十余场分论坛主题重磅首发 聚焦全球开源发展最新动向 前沿技术、行业实践、开源项目与治理等 多场知识盛宴等您来享 为更好地了解大家的参与意向 分论坛投票今天正式启动&#xff01; 投票时间&#xff1a;5月19-26日 长按识别二维码 …

像FBIF一样做会展数字化,你也有可能吸引数万观众

&#xff08;点击下载&#xff09; 2022疫情加时赛&#xff0c;FBIF论坛规模依旧喜人。 观众2w、参与企业4500、品牌方占比65%、展商规模500。 这样的成绩离不开FBIF团队的努力&#xff0c;也离不开FoodTalks网站。 &#xff08;图片来源FoodTalks网站&#xff09; FoodTalk…

推动科技教育普惠|2023 开放原子全球开源峰会校源行分论坛即将启幕

科技创新&#xff0c;人才先行&#xff0c;高校作为开源人才培养的主阵地&#xff0c;在开源的发展中扮演着关键角色。 6 月 13 日&#xff0c;2023 开放原子全球开源峰会校源行分论坛将在北京经开区亦创国际会展中心盛大举行。论坛以“聚缘于校、开源共行”为主题&#xff0c;…