2013-04-29 30 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