如何从Gradle向Maven repo发布XML文件

如何从Gradle向Maven repo发布XML文件,gradle,maven-publish,Gradle,Maven Publish,我有一个静态xml文件,我想使用Maven发布插件从Gradle发布到Maven存储库(现在是我的本地Maven repo) build.gradle如下所示: apply plugin: 'maven-publish' group 'com.example.gradletest' version '1.0-SNAPSHOT' publishing { publications { beta(MavenPublication) { artifa

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

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'
        }
    }
}
这是可行的,但我也想添加一个分类器,我应该在哪里定义它? 在第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()的签名不适用于参数类型:(build101arjzoe908rdkh5aikrn6bt$\u run\u closure5\u closure16\u closure19\u closure20)值:[build101arjzoe908rdkh5aikrn6bt$\u run\u closure5\u closure16]_closure20@2aa7399c] 可能的解决方案:wait()、any()、wait(long)、each(groovy.lang.Closure)、any(groovy.lang.Closure)、list()

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

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

使用指定的映射语法

发布{
出版物{
beta版(MavenPublication){
artifactId“功能文件”
工件源:“src/main/resources/features.xml”,分类器:“features”
}
}
}

添加
pom{packaging'xml}

为我工作(gradle 3.2.1)

发布{
出版物{
beta版(MavenPublication){
artifactId“功能文件”
工件源:“src/main/resources/features.xml”,分类器:“features”
pom{打包“xml”}
}
}

}

是的,这增加了分类器,但它也将包装从xml更改为pom。我不想那样。