# ffsky-maven-repo **Repository Path**: hljdrl/ffsky-maven-repo ## Basic Information - **Project Name**: ffsky-maven-repo - **Description**: Maven本地仓库,仅限开发中使用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-14 - **Last Updated**: 2023-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: maven本地仓库, 组件开发, Android组件开发, App组件开发, 模块开发 ## README # ffsky-maven-repo #### 介绍 Android组件开发本地化,不用搭建【Sonatype Nexus Repository】Maven私服,也可以进行组件开发,缺点组件二进制代码随着版本增加存储空间变大; 适合小组开发、培训机构、多人开发。 ### 引用 ffsky-maven-repo `` IDE: Android Studio 1. ffsky-maven-repo必须和你的项目在一个文件夹,例如代码存放在 dev-code目录下,dev-code/ffsky-maven-repo ,然后你的项目 dev-code/youAppProject 2. 在你的youAppProject项目引入 ffsky-maven-repo youAppProject/build.gradle ```json //TODO 适用于 com.android.tools.build:gradle 4.x以下项目配置. allprojects { repositories { //TODO 插件本地仓库,仅限开发自测插件 maven { url uri('../fsky-maven-repo') } maven{ url 'https://s01.oss.sonatype.org/content/repositories/releases/' } google() mavenCentral() } } ``` youAppProject/settings.gradle ```json //TODO 适用于 com.android.tools.build:gradle 5.x以上项目配置. dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { //TODO 插件本地仓库,仅限开发自测插件 maven { url uri('../fsky-maven-repo') } google() mavenCentral() jcenter() // 第三⽅库的仓库地址 maven { url "http://jitpack.io" allowInsecureProtocol true } maven{ url SONATYPE_MAVEN } } } ``` #### 使用 ffsky-maven-repo中的组件 在youAppRoject/app/build.gradle ```json dependencies { //引入 ffsky-maven-repo目录中的组件 //TODO 固定版本号引入 api 'com.gitee.hljdrl:logger:1.0.0' //TODO 不固定版本号引入 api 'com.gitee.hljdrl:logger:1.+' } ``` #### 发布组件到 ffsky-maven-repo,仅限你的本地目录 例如在 youAppProject/lib_logger 组件模块 新增如下脚本 publish.gradle,需要在 youAppProject/lib_logger/build.gradle文件引入脚本 apply from: 'publish.gradle' publish.gradle 文件内容 ```json apply plugin: 'maven-publish' task sourceJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier "sources" } def aarName = getProject().getName() + "-release.aar"; publishing { publications { maven(MavenPublication) { groupId 'com.gitee.hljdrl' artifactId 'logger' version '1.0.0' artifact(sourceJar) print("aarName-->" + aarName) def aarPath = "$buildDir/outputs/aar/$aarName" artifact(aarPath) pom { //------------------------------------------------------------ pom.withXml { def dependenciesNode = asNode().appendNode('dependencies') println("> --------START----------") configurations.implementation.allDependencies.each { if(it.version!='unspecified' && it.name!='unspecified') { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.group) dependencyNode.appendNode('artifactId', it.name) dependencyNode.appendNode('version', it.version) println(" api \""+ it.group+":"+ it.name+":"+it.version+"\"") } } println("> --------END-----------") } //------------------------------------------------------------ } } } repositories { //TODO Local File Repositories maven { url = uri('../../ffsky-maven-repo') } } } ```