【问题标题】:How to publish an XML file to Maven repo from Gradle如何从 Gradle 将 XML 文件发布到 Maven 存储库
【发布时间】:2015-10-28 10:38:04
【问题描述】:

我有一个静态 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'
        }
    }
}

【问题讨论】:

    标签: gradle maven-publish


    【解决方案1】:

    使用here指定的映射语法。

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

    【讨论】:

    • 是的,它添加了分类器,但它也将包装从 xml 更改为 pom。我不想那样。
    【解决方案2】:

    添加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' } } } }

    【讨论】:

      猜你喜欢
      • 2013-12-06
      • 2022-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 2016-05-30
      相关资源
      最近更新 更多