Jfrog 下载

安装包下载地址:Download Artifactory OSS | JFrog

如果是想下载之前的版本,可以点击上面的Get code source ,如果是最新版本,直接点下面的下载就好。下面以Linux安装为例。

Jfrog安装

对于Linux而言,其实是不需要安装的,直接解压出来后就可以运行,我这里下载的是:

jfrog-artifactory-oss-7.49.8-linux.tar.gz

通过命令解压:

tar -zxvf jfrog-artifactory-oss-7.49.8-linux.tar.gz

        解压出来后进入到:

cd artifactory-oss-7.49.8/app/bin

该目录下运行命令:

./artifactoryctl start

服务起来后,就可以在浏览器中访问了,服务对外访问的端口默认是8082:

http://localhost:8082

打开后需要输入用户名和密码,默认的用户名:admin 默认密码:password

踩过的坑

1、网上看到有说需要需要安装java 1.8以上,其实不用,Jfrog中有java环境

如果想自己配置java,那就可以修改这个javaHome的值。

2、./artifactoryctl start 之后,控制台输出的日志显示启动成功了,输入./artifactoryctl status查看状态,服务也都起来了,但浏览器中 http://localhost:8081 一直显示加载中的动画,这是因为有些服务有一些超时机制,刚开始是启动成功了,但过一段时间通过 ./artifactoryctl status 查看,可能有些服务已经挂了,这时候就需要去看日志了。停止服务指令 ./artifactoryctl stop。

3、查看日志,cd jfrog/artifactory-oss-7.49.8/var/log目录下,这个目录下有比较多的日志文件,但有些是空的,可以通过ls -l 来看下哪些是有日志的,我所遇到的基本都是端口访问不了,为什么会访问不了呢?可能是端口被其他程序占用了。我自己电脑通过VMware安装的linux,没遇到这个问题,但是用已经安装了许多服务的服务器就出现了,这个时候就需要我们去配置端口了。

4、修改端口, cd artifactory-oss-7.49.8/var/etc目录下,有个system.yaml文件(第一次输入了./artifactoryctl start 才会有),这个文件的配置可以参考system.yaml,这里先贴一下我的配置

这里有一个奇怪的问题,一开始报8046端口访问被拒了(8046端口被其他程序占用了),我修改成18046还是报访问被拒,换成其他的也一样,弄了好久,后面修改了18081和18082,启动成功了,这样修改后,浏览器中访问的端口就变成18082了。

创建本地仓库

登陆到web服务台后,就可以创建相关的仓库了。

仓库分为,本地Local型,远程Remote型,以及虚拟型。

  • 本地私有仓库:用于内部使用,上传的组件不会向外部进行同步。
  • 远程仓库:用于代理及缓存公共仓库,不能向此类型的仓库上传私有组件。
  • 虚拟仓库:不是真实在存储上的仓库,它用于组织本地仓库和远程仓库。

这里先创建本地仓库(Local),点击右边的Add Repositories,选择Local Repository,然后在package type中选择maven,之后再只需要填入Repository Key(上传下载库的时候会用到,这里就以libs-snapshot为例)就完成了。

Android上传库

在Android工程的根目录下新建artifactory.gradle文件,配置如下:

project('模块名称') {publishing {publications {aar(MavenPublication) {groupId = "com.squareup.okhttp3"artifactId = "okhttp"version = "3.12.0"artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")pom.withXml {def dependencies = asNode().appendNode("dependencies")configurations.implementation.allDependencies.each {def dependency = dependencies.appendNode("dependency")println("groupId == ${it.group}, artifactId == ${it.name}, version == ${it.version}")dependency.appendNode("groupId", it.group)dependency.appendNode("artifactId", it.name)dependency.appendNode("version", it.version)}}}}}artifactoryPublish {dependsOn("assembleRelease")publications('aar')}
}artifactory {contextUrl = "http://10.10.10.20:18082/artifactory"publish {repository {repoKey = 'libs-snapshot' //这里就是创建本地库时输入的Repository Keyusername = "admin"password = "password"}defaults {publishArtifacts = trueproperties = ['qa.level': 'basic', 'dev.team': 'core']publishPom = true}}
}

然后在根目录的build.gradle中配置:

buildscript {ext.gradle_version = '7.1.1'repositories {google()mavenCentral()}dependencies {classpath "com.android.tools.build:gradle:$gradle_version"classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.31.0"}
}allprojects {apply plugin: 'com.jfrog.artifactory'apply plugin: 'maven-publish'repositories {google()mavenCentral()}
}
apply from: "./artifactory.gradle"

这就配置完了,接着就是上传了:

点击这里的artifactoryPublish就会上传,上传后就可以在Jfrog的web上查看了:

这样就上传完成了,

踩坑点 :

最开始是参考Jfrog的Git仓库配置gradle-android-example,按这个配置完成后,上传的时候没有报错,但是Jfrog的web页面就是找不到。唯一的不同点就是gradle插件的版本了,我工程配置的是7.1.1的,难不成要改gradle版本,尝试了下,确实可以,但这也太那个啥了。还有没有其他方法呢,那就只能修改Jfrog的插件版本了,Jfrog的插件org.jfrog.buildinfo,但是对应关系不知道,一开始是用的最新的Jfrog插件,但编译就报错了,后面就改成4.31.0的版本就OK了。

Android引用

这样配置好maven仓库后就可以直接引用了。

接下来在进一步讨论下,如果在Jfrog上配置了多个仓库,比如还有个libs-release,那这里就还需要再配置http://10.10.10.20:18082/artifactory/libs-release/,这样就可能会配置很多个了,那可不可以只配置一个呢?那就需要配置虚拟仓库(Virtual)了,和新建本地库一样,只不过虚拟库需要多配置一步:

如上图所示,那就是将需要加入到虚拟仓库的本地仓库移入右边,在点击Create Virtual Repository就创建完了虚拟仓库 ,之后将虚拟库的url替换上面的就OK了,那可不可以再进一步,将google()和mavenCentral()也配置到本地虚拟仓库呢?那肯定也是肯定的,不要忘了我们还有一个远程仓库(Remote)还没用到,那远程仓库要怎么配置google()和mavenCentral() 呢?这里首先需要获取到google()和mavenCentral()的地址,这里可以查看阿里的仓库服务,然后就是新建远程仓库了,和新建本地仓库一样,就是多了一项配置仓库url地址,创建完远程仓库后,将新建的远程仓库也加入到虚拟仓库,这样直接使用一个虚拟仓库就OK啦。到这,整个配置也就完成了。

Jfrog 搭建本地maven仓库以及上传Android库相关推荐

  1. android 加载系统私有库,Android 搭建私有maven仓库及上传项目

    前言 在日常工作及项目迭代过程中,一定有不少同学自己写了一些框架性的东西,或者一些好用的工具,总之就是能复用的代码.然而也有不少同学为了复用这些代码不得不复制粘贴到不同项目中,这样相同的功能出现了多份 ...

  2. 如何通过Gradle上传Android库到JCenter

    介绍如何将自己的项目上传到JCenter. 前言 我们经常在Android的gradle文件中看到这些compile脚本,这些脚本其实就是因为之前库的开发者把对应库的jar或aar文件放到了远程服务器 ...

  3. Nexus 私服上传Android库

    文章目录 环境 Repository(仓库)创建 Deploy脚本 uploadp-aar.gradle properties.gradle upload.properties build.gradl ...

  4. 搭建本地maven仓库

    换了新的设备,旧电脑又不在,那就自己下载一个吧. 官网下载 官网maven与jdk对应版本 官网maven相关问题 官网各种指南 可参考 https://www.runoob.com/maven/ma ...

  5. AndroidStudio如何打包生成realease版本的arr包,并上传到Nexus搭建的maven仓库,供项目远程依赖(二)

    AndroidStudio如何打包生成realease版本的arr包,并上传到Nexus搭建的maven仓库,供项目远程依赖(二) AndroidStudio如何打包生成realease版本的arr包 ...

  6. AndroidStudio如何打包生成realease版本的arr包,并上传到Nexus搭建的maven仓库,供项目远程依赖(一)

    AndroidStudio如何打包生成realease版本的arr包,并上传到Nexus搭建的maven仓库,供项目远程依赖(一) 背景: 公司之前在eclipse上做开发,写了很多library库供 ...

  7. Maven入门:使用Nexus搭建Maven私服及上传下载jar包

    一. 私服搭建及配置 1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓 ...

  8. 「云原生 | Docker」手把手教你搭建镜像仓库并上传/下载镜像

    手把手教你搭建镜像仓库 一.选择镜像仓库 二.使用 Docker 官方仓库 1. 注册账号并登录 2. 创建私有仓库 3. 设置私有秘钥 3. 登录 Docker 仓库 4. 上传镜像到 Docker ...

  9. maven快速入门番外篇——Eclipse下载GitHub上FastDFS-Client客户端源码并转化成maven工程以及打包到本地maven仓库

    由于fastdfs-client的jar包目前在中央仓库是没有坐标的,而在项目中要想实现文件的上传和下载就得使用到它,这不禁就让我们头疼,所以为了解决这个问题,我写下了这篇文章,希望对读者能有所帮助. ...

最新文章

  1. VTK修炼之道38:图像平滑_中值滤波器
  2. J2EE搭建Dynamic web SpringMVC工程404错误分析(三)
  3. javascript计算小数保留两位小数,多位小数的方法
  4. 基于Java+jsp+servlet的养老院管理系统设计和实现《收藏版》
  5. iOS:苹果内购实践
  6. [转帖]解密微软中间语言MSIL之调试程序(1)
  7. 新手驾车操作指南[200P]
  8. [数据结构]链表的实现在PHP中
  9. java计算机毕业设计网络游戏后台管理系统MyBatis+系统+LW文档+源码+调试部署
  10. 半桥驱动器芯片 TPS28225 中文资料
  11. php仿止伪装ip,php伪造ip与防止伪造ip方法解析
  12. Cookie、Session和Token(学习笔记)
  13. jquery嘎嘎嘎嘎嘎嘎
  14. java 常用类 - 大数据运算
  15. 【结构体】结构变量的定义与初始化
  16. itext html转pdf 图片,itext2.0.8 将 HTML 转换成 PDF, 完美 CSS, 带图片, 自动分页
  17. python算式运算题目_python的四则运算练习
  18. 搬书 hnust校赛
  19. js 根据秒数获取多少小时,多少分钟,多少秒
  20. 十大“元宇宙”电影,元宇宙科幻影视,其中一部为国产文学改编

热门文章

  1. 【OpenGL】Android 中的 skia 和 OpenGL ES
  2. 吞吐量和IOPS测试
  3. 修改手机开机Logo界面(Redmi Note 7)
  4. 利用python实现3种梯度下降算法
  5. 在maven中创建jsp依赖
  6. 漫谈凭脉用药--何少奇
  7. 人工智能前景和现状如何?AI发展趋势分析
  8. TP与laravel简介
  9. 最大数leetcode_Leetcode:最大化有效体验
  10. 鸽巢原理(初识)(纯算法)