使用 gradle publish 时,ivy module.xml 不包含所有工件
Posted
技术标签:
【中文标题】使用 gradle publish 时,ivy module.xml 不包含所有工件【英文标题】:ivy module.xml doesn't contain all artifacts when gradle publish is used 【发布时间】: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 已被证明是在括号中发布工件的痛苦。
【问题讨论】:
【参考方案1】:您已经声明了四个独立的发布,每个发布都将产生自己的模块描述符。要生成包含多个工件的 Ivy 模块,您必须将它们列在同一出版物下。关于“Jar 文件是相同的”问题,一个最小的独立可重现示例会有所帮助。
请注意,您正在使用的新 ivy-publish
插件仍处于孵化阶段,可能存在不足之处。我们非常感谢您的反馈,以使其变得更好。联系 Gradle 开发人员和专家的最佳地点是http://forums.gradle.org。
【讨论】:
以上是关于使用 gradle publish 时,ivy module.xml 不包含所有工件的主要内容,如果未能解决你的问题,请参考以下文章
Gradle 搜索 Ivy 服务但未定义 Ivy 配置/存储库