没有合适的资源?快使用搜索试试~ 我知道了~
批量上传Jar包到Maven私服的工具的方法
28 下载量 49 浏览量
2020-08-26
14:07:36
上传
评论 1
收藏 101KB PDF 举报
温馨提示
主要介绍了批量上传Jar包到Maven私服的工具的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
资源推荐
资源详情
资源评论

























批量上传批量上传Jar包到包到Maven私服的工具的方法私服的工具的方法
主要介绍了批量上传Jar包到Maven私服的工具的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参
考。一起跟随小编过来看看吧
基本信息基本信息
适用环境:内网环境下的 Maven 私服,无法连接外网(或者需要翻墙),需要通过其他手段下载完依赖后导入到内网私服的
情况。
功能描述:功能描述:
单个依赖包含的pom,jar等文件应该在一个单独的目录中,可以指定下面的路径,上传 gson 到私服。
还可以指定到 f:\.m2\repository\Gson\gson,上传 gson 的多个版本。
也可以直接 f:\.m2\repository,将整个仓库下面的所有 jar 包的所有版本都上传到私服。
注意: 上传前,如果允许重复上传到私服,就需要在私服配置,允许 redeploy,否则已经存在的会报错。
下载下载 Jar 包包
如果是下载单个的jar包,可以从 http://mvnrepository.com/ 搜素下载,下载的时候(根据连接打开一个地址,下载
pom,jar,source,javadoc)。
如果是针对项目,可以先配置一个新的本地仓库路径(避免和已有jar搅和一起不好区分)。
为了可以下载source和javadoc,在 settings.xml 中增加下面的配置:
<profiles>
<profile>
<id>downloadSources</id>
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>downloadSources</activeProfile>
</activeProfiles>
在项目下面执行:mvn clean install 命令。
执行完成后,再次执行:mvn dependency:sources下载源码。
如果需要 javadoc ,可以执行命令: mvn dependency:resolve -Dclassifier=javadoc
需要在 settings.xml 中设置好账号密码,参考如下。
<server>
<id>thirdpart</id>
<username>admin</username>
<password>123456</password>
</server>

上传命令上传命令
使用下面的命令可以上传依赖到私服。
复制代码 代码如下:
mvn deploy:deploy-file -Durl=file:///home/me/m2-repo -DrepositoryId=some.repo.id -Dfile=./path/to/artifact-name-1.0.jar -
DpomFile=./path/to/pom.xml -Dsources=./path/to/artifact-name-1.0-sources.jar -Djavadoc=./path/to/artifact-name-1.0-
javadoc.jar
自动化自动化
手动使用这个命令上传时,还不如直接通过nexus的前台进行上传,为了可以自动批量上传,我们可以写个小程序来利用这个
命令进行批量操作。
当写一个可以批量上传依赖的程序时,还需要考虑如果packaging=pom或者packaging=bundle时,需要特殊处理。pom时,Dfile
DpomFile两个参数都指定为pom文件即可,bundle时,需要指定-Dpackaging=jar,由于jar时这个参数也没问题,所以无论bundle还
是jar都带上这个命令。
下面开始代码。
/**
* 上传依赖到 Maven 私服
*
* @author liuzenghui
* @since 2017/7/31.
*/
public class Deploy {
/**
* mvn -s F:\.m2\settings.xml
* deploy:deploy-file
* -Durl=http://IP:PORT/nexus/content/repositories/thirdpart
* -DrepositoryId=thirdpart
* -Dfile=antlr-2.7.2.jar
* -DpomFile=antlr-2.7.2.pom
* -Dpackaging=jar
* -DgeneratePom=false
* -Dsources=./path/to/artifact-name-1.0-sources.jar
* -Djavadoc=./path/to/artifact-name-1.0-javadoc.jar
*/
public static final String BASE_CMD = "cmd /c mvn " +
"-s F:\\.m2\\settings.xml " +
"deploy:deploy-file " +
"-Durl=http://IP:PORT/nexus/content/repositories/thirdpart " +
"-DrepositoryId=thirdpart " +
"-DgeneratePom=false";
public static final Pattern DATE_PATTERN = Pattern.compile("-[\\d]{8}\\.[\\d]{6}-");
public static final Runtime CMD = Runtime.getRuntime();
public static final Writer ERROR;
public static final ExecutorService EXECUTOR_SERVICE = Executors.newFixedThreadPool(10);
先看第一部分,BASE_CMD 是基础的命令部分。
cmd /c 可以保证使用 Java 的runtime 执行命令时,可以找到命令。
-s F:\\.m2\\settings.xml 参数指定了配置文件的路径(避免多个配置的时候不知道配置那个)。
deploy:deploy-file 是上传文件的命令。
-Durl=xxx指定了上传的位置,从nexus中可以找到这个地址。
-DrepositoryId=thirdpart必须和上面指定的地址一致,从nexus仓库配置可以看到这个id,另外上面提到的settings.xml中的用
户密码要和这个id匹配。
-DgeneratePom=false因为我们会传pom文件,所以禁用自动生成。
后面的 DATE_PATTERN主要是存在快照版时,忽略日期形式的版本,只保留SNAPSHOT形式的。
再后面获取了一个 CMD 和一个线程池。
继续代码。
static {
Writer err = null;
try {
err = new OutputStreamWriter(new FileOutputStream("deploy-error.log"), "utf-8");
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
剩余7页未读,继续阅读
资源评论


weixin_38675967
- 粉丝: 9
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络互动营销推广策划案2010.ppt
- 客户经理的项目管理.ppt
- 项目管理案例.docx
- 某软件工程师工作六年总结.docx
- 双向HFC网络的设计与回传系统的调试.doc
- 搜索引擎推广代理.docx
- 《大数据与档案管理》(ppt文档).ppt
- 统计建模与R软件课后答案.doc
- (源码)基于全栈技术的个人成长博客.zip
- 国库集中支付软件操作培训手册修改版.doc
- 网络与信息安全安全基础(二).ppt
- 软件质量保证第六章.pptx
- 基于gis的突发事件应急处置预案及检索系统的应用研究.doc
- 专业技术人员信息化能力建设.docx
- 对施工项目管理的一些认识.docx
- 如何管理好项目管理中的矩阵型组织结构.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
