使用gradle发布时,ivy module.xml不包含所有工件

时间:2013-04-29 14:42:33

标签: gradle ivy

我认为这可能与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已经证明了出版工件的括号中的一个痛苦。

1 个答案:

答案 0 :(得分:0)

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

请注意,您使用的新ivy-publish插件仍然是孵化并且可能存在缺陷。我们非常感谢您提供更好的反馈意见。联系Gradle开发人员和专家的最佳地点是http://forums.gradle.org

相关问题