我有一个静态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(groovy.lang.Closure),list()
使用以下解决方案将正确添加分类器,但也会将pom.xml中的打包从<packaging>xml</packaging>
更改为<packaging>pom</packaging>
。我不希望这样。
publishing {
publications {
beta(MavenPublication) {
artifactId 'feature-file'
artifact source: 'src/main/resources/features.xml', classifier: 'features'
}
}
}
答案 0 :(得分:0)
使用指定here的地图语法。
publishing {
publications {
beta(MavenPublication) {
artifactId 'feature-file'
artifact source: 'src/main/resources/features.xml', classifier: 'features'
}
}
}
答案 1 :(得分:0)
添加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' }
}
}
}