草庐IT

一篇带你利用 Gitlab 搭建 Maven仓库

zinyan 2023-03-28 原文

前言

打算利用公司已有的Gitlab代码管理库。实现maven仓库的搭建。

PS:如果公司服务器资源充足,采用Nexus 搭建一个Maven库。这样整个Maven库的管理会更合理和有效一些。

目标

结束aar和jar文件乱发的历史,使用implementation 引用。

如果在Glilab将项目配置为公共public权限。那么外部其他客户也可以使用maven仓库了。

实现步骤

1、打包配置

Android Studio 环境版本

Android Studio 4.2.1
build:gradle:4.2.1

将需要打包成jar或者aar的项目配置maven 脚本。

新建一个:gitlab.gradle文件 和项目build.gradle同一级目录下创建。

并添加下面代码:

apply plugin: 'maven'

uploadArchives {
repositories.mavenDeployer {
def mavenDirPath = file('../maven') // 相对地址。 编译后的代码将会存在父目录的maven文件夹下。
def mavenDirPath = file('D:\\appmaven') //绝对路径,编译后的代码将会存在 D盘的appmaven文件夹下。
repository(url: "file://${mavenDirPath.absolutePath}")
pom.project {
groupId "cn.zinyan.demo" // 包名
artifactId "Key" // module的名字
version '1.1.1'// 版本号
//配置完毕后,包名决定地址中的 第一项,artifactId 决定了第二项,version 决定了第三项版本号
//implementation 'cn.zinyan.demo:Key:1.1.1'
}
}
}

// 如果不想生成 javadoc.jar 和 sources.jar 库以下代码可以省略
def sourceDirs
if (project.hasProperty("android")) {
sourceDirs = android.sourceSets.main.java.srcDirs
}else {
sourceDirs = sourceSets.main.java.srcDirs
}

task javadocs(type: Javadoc) {
source = sourceDirs
}
//生成doc
task javadocsJar(type: Jar) {

// classifier='javadoc' //老版本写法, 现在已经过期了。建议使用下面的
archiveClassifier.set('javadoc')
from javadocs.destinationDir
}
//生成sources
task sourcesJar(type: Jar) {
// classifier='sources'//老版本写法, 现在已经过期了。建议使用下面的
archiveClassifier.set('sources')
from sourceDirs
}

artifacts {
archives javadocsJar
archives sourcesJar
}
build.gradle 文件中引用gitlab.gradle 文件。

添加方式:apply from: 'gitlab.gradle'

然后我们可以在右侧的Gradle面板的Tasks->upload->uploadArchives 指令

点击执行该指令,就可以在本地生成相应编译后的代码了。

上面的指令直接支持:aar库和jar库的编译。 系统会根据你的lib的类型。自动打相应的文件。

2、上传代码

直接通过gi将执行编译后的全部aar,和jar等数据上传就可以了。

包括aven-metadata.xml等文件,pom等文件,javadoc等文件,sources等文件。

3、使用gitlab库的maven

(1)maven是公共的

如果你的GitLab上的maven仓库项目是公共的。那么maven 就是公共的

其他人调用,只需要该maven库的地址即可

allprojects {
repositories {
maven {
url "https://你的仓库的地址+直接到项目名/分支/"
}
}
这个url链接:gitlab 上通常情况下 。

公共项目的路径是这样的 ​https://域名地址/Group名称/项目名/-/raw/分支名/。​

如果该项目是你自己的。而不是组里面的。那么Group名称就得换成你的用户名了。

有一个很简单的方法。

访问你的gitLab库,打开我们提交的一个xml文件。例如pop.xml文件。

在浏览器中,从https开始一直到你的包名称截止,这一段地址就是我们需要配置到maven上的url地址。后面的包名路径,IDEA会自动帮我们补上并更新了

(2)maven是私有的

如果你的GitLab 是私有的。只想部分人可以使用。

需要在maven 地址导入的位置,添加相应的访问账号和Token了。

可以参考文章 利用Gitlab仓库搭建私有Maven仓库 - 知乎 (zhihu.com)

4、使用gitee库的样例

例如我在gitee上搭建的一个简单的maven仓库。

allprojects {
repositories {
maven{
url 'https://gitee.com/zinyan/maven/raw/master/'
}

implementation 'com.zinyan.util:general:1.0.0'

有关一篇带你利用 Gitlab 搭建 Maven仓库的更多相关文章

  1. ruby - 将 Gitlab 从 9.3.7 更新到 9.3.8 安装 re2 时出错 - 2

    我们在Ubuntu14.04和Gitlab9.3.7上运行,运行良好。我们正在尝试更新到Gitlabv9.3.8的最新安全补丁,但它给我们这个错误:Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension.currentdirectory:/home/git/gitlab/vendor/bundle/ruby/2.3.0/gems/re2-1.0.0/ext/re2/usr/local/bin/ruby-r./siteconf20170720-19622-15i0edf.rbextconf.rbcheckingformain(

  2. ruby-on-rails - 清除 GitLab 中的所有 Assets - 2

    我想在我公司安装的GitLab中使用自定义Logo-白色、Logo-黑色和网站图标。我用谷歌搜索了我的屁股并尝试了所有我能找到的方法来清除这些该死的图像,但似乎没有任何效果。这是唯一似乎成功运行但未删除图像的进程:bundleexecrakecache:clearRAILS_ENV=productionservicegitlabstopredis-cliFLUSHALLbundleexecrakeassets:precompileRAILS_ENV=productionservicegitlabstart然后我清除我的浏览器缓存并转到该域,再次出现相同的该死的图像!我什至删除了我能从应

  3. ruby - 在 Maven 集成中运行 Ruby 单元测试 - 2

    有没有人有在Maven中运行用Ruby编写的单元测试的经验。任何输入,如要使用的库/maven插件,将不胜感激!我们已经在使用Maven+hudson+Junit。但是我们正在引入Ruby单元测试,找不到任何同样好的组合。 最佳答案 我建议让Maven使用ExecMavenPlugin启动rake测试(exec:exec目标)并使用ci_reportergem生成单元测试结果的XML文件,Hudson、Bamboo等可以读取该文件,以与JUnit测试相同的格式显示测试结果。如果您不需要使用mvntest运行Ruby测试,您也可以只使

  4. ruby - 如何使用 webhooks 从 Gitlab 推送到 Github - 2

    如果我只能找到正确的手册,我的Google-fu就会让我失望,因为这看起来很明显。我有一个由我们的托管服务提供商安装的Gitlab服务器Gitlab服务器有很多项目。对于其中一些项目,我希望Gitlab每次从本地客户端推送到Gitlab时自动推送到远程存储库(在本例中为Github)。像这样:客户端-->gitlab-->github任何标签和分支也应该被推送。AFAICT我有3个选择:用两个Remote配置本地客户端,同时推送到Gitlab和Github。我想避免这种情况,因为开发人员。在Gitlab服务器上的存储库中添加一个gitpost-receiveHook。这将是最灵活的(我

  5. 大数据之Hadoop数据仓库Hive - 2

    目录:一、简介二、HQL的执行流程三、索引四、索引案例五、Hive常用DDL操作六、Hive常用DML操作七、查询结果插入到表八、更新和删除操作九、查询结果写出到文件系统十、HiveCLI和Beeline命令行的基本使用十一、Hive配置一、简介Hive是一个构建在Hadoop之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行。特点:简单、容易上手(提供了类似sql的查询语言hql),使得精通sql但是不了解Java编程的人也能很好地进行大数据分析;灵活性高,可以自定义用户函数(UDF)和

  6. iOS快捷指令:执行Python脚本(利用iSH Shell) - 2

    文章目录前言核心逻辑配置iSH安装Python创建Python脚本配置启动文件测试效果快捷指令前言iOS快捷指令所能做的操作极为有限。假如快捷指令能运行Python程序,那么可操作空间就瞬间变大了。iSH是一款免费的iOS软件,它模拟了一个类似Linux的命令行解释器。我们将在iSH中运行Python程序,然后在快捷指令中获取Python程序的输出。核心逻辑我们用一个“获取当前日期”的Python程序作为演示(其实快捷指令中本身存在“获取当前日期”的操作,因而此需求可以不用Python,这里仅仅为了演示方便),核心代码如下。>>>importtime>>>time.strftime('%Y-%

  7. ruby - Sidekiq 可以利用多个 CPU 内核吗? - 2

    我是Sidekiq的新手,将它与AmazonEC2实例上的Ruby结合使用,以使用ImageMagick处理图像来完成一些工作。在运行它时,我意识到每个工作人员都在同一个核心上运行。我使用EC2c3.2xlarge机器,它们有8个内核。它显示CPU使用率为15%,但一个内核使用了100%,而其他内核使用了0%。Sidekiq可以为不同的worker使用不同的CPU内核吗?如果可以,这种低效率是由ImageMagic造成的吗?我怎样才能让它使用其他内核? 最佳答案 如果您想使用MRI使用多个内核,则需要启动多个Sidekiq进程;为您

  8. ruby - 将 omniauth-gem 添加到综合 GitLab 安装 - 2

    一般来说,我对ruby​​并没有太多经验,也没有尝试在GitLab社区版中安装新的omniauth提供程序。我使用综合包将其安装在Ubuntu14.04上。目标是根据JasigCAS对GitLab进行身份验证根据Customomniauthproviderconfigurationsdoc使这项工作正常进行的下一步是使用“gem'omniauth-cas'”将相应的gem添加到gemfile。安装的omnibus包甚至可以做到这一点吗?还是必须手动重新安装?我在安装目录中没有看到任何gemfile,我想它在/var/opt/gitlab的某个地方?谢谢大家!

  9. PLUS模型和InVEST模型生态系统服务多情景模拟预测、ArcGIS空间数据处理、空间分析与制图、土地利用时空变化 - 2

    查看原文>>>基于”PLUS模型+“生态系统服务多情景模拟预测实践技术应用目录第一章、理论基础与软件讲解第二章、数据获取与制备第三章、土地利用格局模拟第四章、生态系统服务评估第五章、时空变化及驱动机制分析第六章、论文撰写技巧及案例分析基于ArcGISPro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局基于生态系统服务(InVEST模型)的人类活动、重大工程生态成效评估、论文写作等具体应用基于ArcGISPro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析实践应用    本文从数据、方法、实践三方面对生态系统服务多情景预测进行讲解。内容涵盖多

  10. LinuxGUI自动化测试框架搭建(二十二)-框架主入口main.py设计&log日志调用 - 2

    (二十二)-框架主入口main.py设计&log日志调用和生成1测试目的2测试需求3需求分析4详细设计4.1新建存放日志目录log4.1.1配置config.py中写入log的目录4.2`baseInfo.py`中加入日志4.3`test_gedit.py`中加入日志4.4主函数入口main.py中调用日志5调用日志主函数main.py源码6`baseInfo.py`源码7`test_gedit.py`源码8运行效果9目前框架结构1测试目的组织运行所有的测试用例,并调用日志模块,便于问题定位。

随机推荐