小团队(个人)如何利用git搭建干净的maven仓库
2018-08-27 本文已影响0人
ammike
私下做项目开发时,很多时候也会拥有自己的公共库,因此需要一个便捷的maven仓库服务器,方便自己开发或者团队开发
目录:
- 一般的利用git搭建maven仓库都有教程
- 痛点解决,如何拥有一个独立的干净的本地仓库
- gradle工程的部署
- maven工程的部署
- 公共库的依赖添加利用
一、利用码云搭建maven仓库流程
利用码云是因为可以设为私有仓库,如果github的话,大家都能看到了。网上教程一大堆,此处不在罗列,
这篇就很好: 使用码云搭建Maven私服
二、如何拥有一个独立的干净的本地仓库
通过上节介绍,可以发现自己公共仓库想做版本控制时,首先需要去掉大量的其它第三方库缓存,上节最后给的思路是:单独做包名区分,可以解决问题,但总感觉不妥
个人的本地仓库目录为:/Users/leixun/.m2/repository,所有的maven install 和依赖库都会默认下载到这个地方,为了和自己开发的公共仓库不做混淆,因此需要建立一个独立的目录
2.1、 新建一个独立的专门用来存储公共库的目录,并上传git做版本控制
mkdir /Users/leixun/my_maven/repository
2.2、gradle工程的部署
1、 gradle部署配置如下,然后执行该task即可发现maven仓库目录下会有相应库
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = 'com.koolearn'
pom.artifactId = 'koolearn_media_ui'
pom.version = android.defaultConfig.versionName
// repository(url: "http://maven.koolearn-inc.com/nexus/content/repositories/ydcx_release") {
// authentication(userName: "", password: "")
// }
repository(url: 'file:/Users/leixun/my_maven/repository')
}
}
}
2.3、maven工程的部署
- pom文件配置(本人暂未成功,但是感觉应该可以成功)
i.pom.xml 中增加:
<distributionManagement>
<repository>
<id>localRepository</id>
<url>file:D:/Workspace/Repository</url>
</repository>
</distributionManagement>
ii. 执行mvn deploy即可
- 命令行部署
此处曾经踩吭,一定是命令行切换到相应工程modulue的有pom.xml的目录中,否则失败
mvn deploy -DaltDeploymentRepository=amleixun-mvn-reop::default::file:/Users/leixun/my_maven/repository
# amleixun-mvn-reop:为repository id
# /Users/leixun/my_maven/repository:git管理的本地maven仓库目录
2.4、仓库的添加
- pom中利用如下
// 码云配置 repository为根目录
<repository>
<id>amleixun-mvn-reop</id>
<url>https://gitee.com/leixun/repository/raw/master/</url>
</repository>
//maven 中相应的dependend中添加
<dependency>
<groupId>com.antstudy</groupId>
<artifactId>redis_client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
- gradle利用
repositories {
// git仓库
maven{
url 'https://gitee.com/leixun/repository/raw/master/'
}
maven { url 'https://oss.sonatype.org/content/repositories/releases' }
maven { url 'https://jitpack.io' }
maven { url 'http://maven.koolearn-inc.com/nexus/content/repositories/ydcx_release' }
jcenter()
flatDir {
dirs 'libs' // aar目录
}
}
<dependency>
compile 'com.antstudy:redis_client:1.0-SNAPSHOT'
</dependency>
tips: 本文只罗列了核心点,并未做详细步骤的说明和截图罗列,如有不解可联系互相交流