【发布时间】:2014-01-17 14:41:15
【问题描述】:
我有一个 Ivy 存储库,其中包含多个已发布的工件,如下所示:
/mygroup/mymodule/1.1.1/mymodule-1.1.1.jar
/mygroup/mymodule/1.1.1/mymodule-client-1.1.1.jar
/mygroup/mymodule/1.1.1/ivy-1.1.1.xml
如果我放入以下 gradle 依赖行,它会检索两个 jar。我只想检索 mymodule-client.jar,但我无法弄清楚使这项工作发挥作用的咒语。这是我现在的线路。出于其他原因,我故意排除了传递依赖。
compile ('mygroup:mymodule:1.1.11') {transitive=false}
Gradle 文档似乎表明有一种方法可以获得特定的工件,但我无法正确地获得咒语。
这是 ivy 文件的内容。为简洁起见,仅更改了模块/工件名称并删除了一些标准依赖项。
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="mygroup" module="mymodule" revision="1.1.1" status="integration" publication="20120111091627"/>
<publications>
<artifact name="mymodule"/>
<artifact name="mymodule-client"/>
</publications>
<dependencies>
...
</dependencies>
</ivy-module>
【问题讨论】:
-
在我看来,您的 Maven 存储库报告此工件 (
mymodule) 是多个 JAR + 一个 XML 文件的组合。也许问题出在那儿,而不是 Gradle 方面(您的 Gradle 语法似乎正确)。 -
它实际上是人工制品,当我认为曾经导入了一个较旧的 Ivy 存储库时。如果您查看 ivy-1.1.1.xml 文件,您可以看到它发布了两个 jar,它们都是
中的 元素。 gradle 行有效,它只是拉入了两个工件,我只想要“客户端”一个。 -
可以发一下
ivy-1.1.1.xml的内容吗? -
您在
dependencies中列出了mymodule-client吗? -
不,依赖关系只是我们公司创建的几个其他 jar,比如“myorg-common-utils”类型的东西,它们没有其他依赖关系。
标签: gradle