使用 Gradle ivy-publish 插件生成 ivy.xml

Posted

技术标签:

【中文标题】使用 Gradle ivy-publish 插件生成 ivy.xml【英文标题】:Generate ivy.xml with Gradle ivy-publish plugin 【发布时间】:2013-07-08 15:00:07 【问题描述】:

嗨,我想创建一个空项目(没有源代码),它可以使用我的 jar helloWorldPlugin 并使用 ivy 描述符进行操作,所以我在一个空项目目录中创建了 build.gradle,内容如下:

apply plugin: 'java'
apply plugin: 'ivy-publish'

publishing 
   publications 
     myPublication(IvyPublication) 

     from components.java
   
repositories 
   ivy 
       url "$project.rootDir/build/publish"
   
  

当我执行时

gradle publishmyPublicationPublicationToIvyRepository

我得到了 xml 描述符

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
  <info organisation="org.moo" module="ivypublish" revision="9.0-m1-SNAPSHOT" status="integration" publication="20130710180056"/>
  <configurations>
    <conf name="default" visibility="public" extends="runtime"/>
    <conf name="runtime" visibility="public"/>
  </configurations>
  <publications>
    <artifact name="ivypublish" type="jar" ext="jar" conf="runtime"/>
  </publications>
  <dependencies>
    <dependency org="org.moo" name="helloWorldPlugin" rev="9.2-m1-SNAPSHOT" conf="runtime-&gt;default" revConstraint="latest.milestone"/>
  </dependencies>
</ivy-module>

1.但是我没有测试、编译等所有java插件配置,为什么?

2.如果我不在xml文件中写from components.java,则只有标签和其他标签,如依赖,conf 是空的。为什么?

3.如何让Gradle在ivy描述符中写入所有java插件配置?

【问题讨论】:

【参考方案1】:

这里有点晚了,但我相信这可能缺少 myPublication 中的配置部分。例如

configurations 
    unitTests  extend 'runtime' 

然后是单元测试配置的关联工件和任务定义

【讨论】:

以上是关于使用 Gradle ivy-publish 插件生成 ivy.xml的主要内容,如果未能解决你的问题,请参考以下文章

Gradle自己定义插件

使用android gradle插件3.0.0比gradle插件2.3.3慢

在创建 gradle 任务的 gradle 插件中使用 kotlinx 序列化

Gradle自定义插件

如何使用Android Studio开发Gradle插件

android greenDao使用