如何轻松地在库的 groupId 形式与其在本地存储库中的关联路径之间进行转换?

How can I easily convert between the groupId form of a library and its associated path in the local repository?

我正在使用 gradle 安装 Android AAR 包(尽管可以想象这可以与 JAR 或任何其他工件一起使用)。我可以用 ./gradlew install 安装神器。这会将它安装到我的本地 Maven 存储库,默认情况下 ~/.m2/repository.

这很好用。现在,我需要创建一个新任务来处理该存储库的实际文件。我可以获得我需要的所有信息,但我有 groupId 的形式:com.somecompany.project,我想要它的形式:com/somecompany/project(因为这是它的存储方式在文件系统上的本地 Maven 存储库中)。

我知道我可以将 . 字符转换为 ${file.separator},但是,考虑到 Maven 必须在内部执行此操作,是否有一种快速的方法来执行此操作,这是行家插件?我希望能够做类似的事情:

def groupDirStructure = maven.convertGroupToPath(project.group)

如果您想获取该文件,您应该将其作为依赖项进行解析,而不是在文件系统中搜索它。

repositories {
    mavenLocal()
}

configurations {
    local
}

dependencies {
    local 'com.somecompany.project:module:1.0'
}

task copyArtifacts(type: Copy) {
    from configurations.local
    into "some/dir"
}