2013-04-29 48 views
0

我相信,如果我有一组出版物,如常春藤module.xml不包含所有工件的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' 
     } 
    } 
    } 
} 

的做后“这可能与publish artifact overwrite other artifact in Gradle

发布”的

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

文件只包含在出版物清单中的第一项

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

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

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

回答

0

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

请注意,您正在使用的新ivy-publish插件仍在孵化并可能有缺点。我们非常感谢反馈,让它更好。到达Gradle开发人员和专家的最佳地点是http://forums.gradle.org