【问题标题】:ivy module.xml doesn't contain all artifacts when gradle publish is used使用 gradle publish 时,ivy module.xml 不包含所有工件
【发布时间】:2013-04-23 06:55:19
【问题描述】:

我相信这可能与publish artifact overwrite other artifact in Gradle有关

如果我有一组出版物,例如

publishing {
  publications {
    serverpub(IvyPublication) {
      artifact(ejbJar) {
        name 'ejb' 
      }
    }
    clientpub(IvyPublication) {
      artifact(clientEjbJar) { 
        name 'client-ejb' 
      }
    }
    modulepub(IvyPublication) {
      artifact(moduleJar) {
        name 'cname-core'
      }
    }
    persistpub(IvyPublication) {
      artifact(persistenceJar) {
        name 'core-entities'
      }
    }
  }
}

在“发布”之后

<Project Name>/ivy/<version>/ivy/ivy-<version>.xml

文件只包含出版物列表中的第一项

<artifact name="ejb" type="jar" ext="jar"/>

如果我将所有工件都归入一个出版物,即。 serverpub 然后 ivy.xml 文件将包含所有正确的工件,但 jar 文件本身都是相同的,因此我与上一个链接有相同的错误。

我是不是做错了什么,因为到目前为止,Gradle 已被证明是在括号中发布工件的痛苦。

【问题讨论】:

    标签: gradle ivy


    【解决方案1】:

    您已经声明了四个独立的发布,每个发布都将产生自己的模块描述符。要生成包含多个工件的 Ivy 模块,您必须将它们列在同一出版物下。关于“Jar 文件是相同的”问题,一个最小的独立可重现示例会有所帮助。

    请注意,您正在使用的新 ivy-publish 插件仍处于孵化阶段,可能存在不足之处。我们非常感谢您的反馈,以使其变得更好。联系 Gradle 开发人员和专家的最佳地点是http://forums.gradle.org。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 2013-06-03
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 2018-09-09
      相关资源
      最近更新 更多