2

我有一个静态 xml 文件,我想使用 maven-publish 插件从 Gradle 发布到 Maven 存储库(我现在的本地 Maven 存储库)。

build.gradle 看起来像这样:

apply plugin: 'maven-publish'

group 'com.example.gradletest'
version '1.0-SNAPSHOT'

publishing {
    publications {
        beta(MavenPublication) {
            artifactId 'feature-file'
            artifact 'src/main/resources/features.xml'
        }
    }
}

这可行,但我也想添加一个分类器,我应该在哪里定义它? https://docs.gradle.org/current/userguide/publishing_maven.html在第 68.2.2 节中说应该可以这样做:

publishing {
    publications {
        beta(MavenPublication) {
            artifactId 'feature-file'
            artifact ('src/main/resources/features.xml') {
                classifier 'features'
            }
        }
    }
}

但后来我得到这个错误:

配置根项目“testapplication”时出现问题。

执行模型规则时抛出异常:org.gradle.api.publish.plugins.PublishingPlugin$Rules#publishing(org.gradle.api.plugins.ExtensionContainer) 没有方法签名:java.io.File.call() 适用于参数类型:(build_101arjzoe908rdkh5aikrn6bt$_run_closure5_closure16_closure19_closure20) 值:[build_101arjzoe908rdkh5aikrn6bt$_run_closure5_closure16_closure19_closure20@2aa7399c] 可能的解决方案:wait(), any(), wait(long), each(groovy.lang.Closure), any( , 列表()

使用以下解决方案将正确添加分类器,但也会将 pom.xml 中的包装从 更改<packaging>xml</packaging><packaging>pom</packaging>。我不想要那个。

publishing {
    publications {
        beta(MavenPublication) {
            artifactId 'feature-file'
            artifact source: 'src/main/resources/features.xml', classifier: 'features'
        }
    }
}
4

2 回答 2

1

添加pom { packaging 'xml' }

为我工作(gradle 3.2.1)

publishing { publications { beta(MavenPublication) { artifactId 'feature-file' artifact source: 'src/main/resources/features.xml', classifier: 'features' pom { packaging 'xml' } } } }

于 2017-02-23T09:27:45.560 回答
1

使用此处指定的映射语法。

publishing {
    publications {
        beta(MavenPublication) {
            artifactId 'feature-file'
            artifact source: 'src/main/resources/features.xml', classifier: 'features'
        }
    }
}
于 2015-10-30T04:52:00.000 回答