Gradle 7.0 kts 使用插件maven-publish

59 篇文章 0 订阅

升级7.0后许多api都变了,整理了一下kts的配置

build.gradle.kts

plugins {
    id("com.android.library")
    id("kotlin-android")
    `maven-publish`
}

//必须配置main
sourceSets {
    create("main") {
        java.srcDir("src/main/java")
    }
}

//打包源码
val sourcesJar by tasks.registering(Jar::class) {
   //如果没有配置main会报错
    from(sourceSets["main"].allSource)
    archiveClassifier.set("sources")
}

publishing {
    //配置maven仓库
    repositories {
        maven {
            //当前项目根目录
            url = uri("$rootDir/repo")
        }
    }
    publications {
        create<MavenPublication>("mavenJava") {
            artifact(sourcesJar)
            afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
            groupId = "com.xxx"
            artifactId = "widget"
            version = "1.0.0"
        }

    }
}
引用

在项目下的 build.gradle.kts节点下配置maven
如果使用version_catalogs管理依赖的话在setting.gradle.kts添加maven配置

//启用version_catalogs 管理
enableFeaturePreview("VERSION_CATALOGS")

@Suppress("UnstableApiUsage")
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        maven { setUrl("https://maven.aliyun.com/repository/public/") }
        maven { setUrl("https://jitpack.io") }
        mavenCentral()
        maven { setUrl("https://maven.google.com") }
        maven{
            url = uri("$rootDir/repo")
        }
    }
  

app/build.gradle.kts

dependencies {
    //不直接引用module加速编译时间
    //implementation project(path: ":widget")
    implementation("com.xxx:widget:1.0.0")
}



作者:懒人吃货一个
链接:https://www.jianshu.com/p/c12a6ecb951a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这句话的意思是:在这个构建过程中使用了已弃用的 Gradle 特性,因此不兼容 Gradle 7.0。可以使用参数“--warning-mode all”来显示每个已弃用的警告。 具体来说,这个提示是在使用较老版本的 Gradle 进行构建时出现的。由于新版本的 Gradle 通常会弃用一些旧的特性,因此使用较老版本的 Gradle 进行构建可能会导致一些问题。为了解决这个问题,可以通过在命令行中加入“--warning-mode all”参数来显示所有已弃用的警告信息,从而更好地了解问题所在。 ### 回答2: 最近,许多使用 Gradle 构建工具的开发人员可能会遇到一个警告信息:“deprecated gradle features were used in this build, making it incompatible with gradle 7.0. use '--warning-mode all' to show the individual deprecation warnings.” 这个警告信息意味着使用了不推荐的 Gradle 特性,有可能导致构建不兼容 Gradle 7.0 的版本。 Deprecated 特性是指已经过时的特性,官方已经不再推荐使用这些特性。这些特性虽然仍然可以使用,但会在未来的版本中被删除。当我们使用这些特性时,会出现警告信息,警示我们该特性将在未来版本中被删除,并建议我们尽快修改代码以使用新的特性替代。 这些不推荐的特性可能是旧的 Gradle 件、语法或 API。如果我们不改变现有的代码,极有可能在 Gradle 7.0 中遇到问题。因此,我们需要注意这个警告信息,尽快修改开发代码,以避免未来版本的兼容性问题。 当我们想排除这个警告信息时,可以在 Gradle 命令中添加 “--warning-mode all” 参数,以显示所有弃用警告。这样我们就可以查看所有的弃用警告,并可以尽快解决它们。 总的来说,错误或警告信息是我们开发过程中必不可少的一部分,虽然容易被忽略,但建议我们时刻保持警觉,尽早解决这些问题,从而避免未来的兼容性问题。 ### 回答3: 这个报错信息的意思是,使用了不再建议使用Gradle功能来构建代码,所以与Gradle 7.0不兼容。在构建代码时,可以使用‘--warning-mode all’命令来显示器个别的警告信息。 Gradle是当前Android应用开发中使用最广泛的构建工具。它通过一系列的件实现了构建、编译、打包、发布、版本管理等一系列操作。随着Gradle版本不断的升级,一些旧的特性会被淘汰,不再得到支持。而这些旧的特性如果在构建代码时仍然在使用,就可能出现不兼容的情况,导致应用无法正常构建和编译。 为了避免这种情况的发生,我们需要及时了解Gradle的新特性和变更内容,保持代码库的与时俱进。在出现警告信息时可以使用‘--warning-mode all’命令查看具体的问题,及时进行修正。此外,开发人员也可以通过构建工具自动生成配置文件,在Gradle更新时自动检测不兼容的情况,帮助团队快速解决问题并保持应用的稳定性。 总之,及时了解Gradle的新特性和变更内容,避免在代码构建时使用过时的特性,可以有效提升项目的开发效率和代码质量,保证应用的稳定性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值