如何设置构件库根名称

8

背景:Android、Jar和Aar。

我已经在Maven仓库中发布了我的Android构件。 当我在Android Studio项目中导入它时,该构件会显示如下:

no name library root

我所有的类都在classes.jar中。

如何将库根名称更改为此图像下方的retrofit-2.7.0.jar

named library root

这是我的脚本:

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

这个问题类似于关于Ant的问题吗?https://dev59.com/o2nWa4cB1Zd3GeqP5OIX - Anh-Tuan Mai
2个回答

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
        }
    }
}

感谢您的建议。通过应用这个片段,构建输出文件被重命名为 myLib.aar,但是在包内部,jar 文件始终被命名为 classes.jar - Anh-Tuan Mai
哦,我想那么说,我不知道确切的解决方案,但我可以指引你去找,你需要修改生成源代码JAR文件的任务。我认为该任务是sourceJar或者类似的名称,但不知道如何操作它。 - Jeel Vankhede

-1
如果您查看Jake Wharton的ThreeTenABP,则可以在gradle.properties中看到一些定义了POM_*变量。
然后,如果您打开gradle-mvn-push.gradle,您会看到这三个变量的用法。 有关gradle-mvn-push.gradle文件以及如何使用它的更多信息,请阅读此处

我已经在gradle.properties中使用了这3个变量。我尝试导入ThreeTenABPActionBar,但它们的库根名称显示为classes.jar - Anh-Tuan Mai
ThreeTenABP只是我的答案中的一个例子。你是否按照这里的说明发布了你的库? - Primož Ivančič
发布后,该库将使用库根名称“classes.jar”进行导入。 - Anh-Tuan Mai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接