【问题标题】:How to set artifact library root name如何设置工件库根名称
【发布时间】:2020-06-02 14:53:51
【问题描述】:

上下文:android、jar、aar。

我已经在 repo maven 上发布了我的 android 工件。 当我在 Android Studio 的项目中导入它时,工件显示为:

我所有的课程都在 classes.jar

如何在下图中将库根名称更改为类似 retrofit-2.7.0.jar 的名称?

这是我的脚本:

uploadArchives {
repositories {
    mavenDeployer {

        pom.groupId = GROUP
        pom.artifactId = POM_ARTIFACT_ID
        pom.version = VERSION_NAME

        repository(url: getReleaseRepositoryUrl()) {
            authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
        }
        snapshotRepository(url: getSnapshotRepositoryUrl()) {
            authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
        }

        pom.project {
            name POM_NAME
            packaging POM_PACKAGING
            description POM_DESCRIPTION
            url POM_URL

            licenses {
                license {
                    name POM_LICENCE_NAME
                    url POM_LICENCE_URL
                    distribution POM_LICENCE_DIST
                }
            }

            developers {
                developer {
                    id POM_DEVELOPER_ID
                    name POM_DEVELOPER_NAME
                }
            }
        }
    }
}
}

更新 2: 通过申请

android {
    android.libraryVariants.all { variant ->
        variant.outputs.all { // Rename output variant to whatever you want & it would get uploaded as library
            outputFileName = "name-of-your-library-artifact.extension" //I.e. myLib.jar
        }
    }
}

输出工件被重命名为myLib.aar,但在aar内部,类仍被打包为classes.jar

【问题讨论】:

标签: android maven jar aar


【解决方案1】:

我猜您的问题与 maven 发布插件无关,而是与 Android-Studio 如何打包工件本身有关。

当您捆绑或组装 aar/jar 时,Android-Studio 默认会生成 classes.jar 等名称。

您可以尝试通过将以下代码块添加到 android {} DSL 来更改它。

android {
    android.libraryVariants.all { variant ->
        variant.outputs.all { // Rename output variant to whatever you want & it would get uploaded as library
            outputFileName = "name-of-your-library-artifact.extension" //I.e. myLib.jar
        }
    }
}

【讨论】:

  • 感谢您的建议。通过应用 sn-p,构建输出文件重命名为 myLib.aar,但在包内,jar 文件始终命名为 classes.jar
  • 哦,我想我不知道确切的解决方案,但我可以指出,您需要修改生成源 jar 文件的任务。我认为该任务是sourceJar 或其他东西,但不知道如何操作它。
【解决方案2】:

如果您查看 Jake Wharton 的 ThreeTenABP,您可以在 gradle.properties 中查看一些已定义的 POM_* 变量。

如果你再打开gradle-mvn-push.gradle,你就可以使用这三个变量了。 更多关于gradle-mvn-push.gradle文件以及如何使用它,你可以阅读here

【讨论】:

  • 我已经在gradle.properties 中使用了这三个变量。我尝试同时导入ThreeTenABPActionBar,但它们的库根名称显示为classes.jar
  • ThreeTenABP 只是我回答中的一个例子。您是否按照 [此处] (github.com/chrisbanes/gradle-mvn-push) 的说明发布您的库?
  • 发布后导入库,库根名classes.jar
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多