Gradle игнорирует переходные зависимости
Я пытаюсь использовать библиотеку Flex (SWC), которая определяет несколько зависимостей в своем POM. Я надеялся, что Gradle автоматически предоставит эти переходные зависимости. Тем не мение, gradle dependencies
показывает только одну зависимость, которая была добавлена вручную.
merged
\--- com.example:flex-core:1.0.0
POM-файл библиотеки содержит следующее:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>flex-core</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>swc</packaging>
<dependencies>
<dependency>
<groupId>org.as3commons</groupId>
<artifactId>as3commons-lang</artifactId>
<version>0.3.6</version>
<type>swc</type>
<scope>external</scope>
</dependency>
<dependency>
<groupId>org.as3commons</groupId>
<artifactId>as3commons-collections</artifactId>
<version>1.3.2</version>
<type>swc</type>
<scope>external</scope>
</dependency>
<dependency>
<groupId>org.as3commons</groupId>
<artifactId>as3commons-reflect</artifactId>
<version>1.6.0</version>
<type>swc</type>
<scope>external</scope>
</dependency>
</dependencies>
</project>
Я добавил следующую зависимость в моем build.gradle
:
dependencies {
merged 'com.example:flex-core:1.0.0@swc'
}
Почему Gradle игнорирует зависимости от POM? Это из-за "внешнего" охвата? Можно ли получить эти зависимости, не добавляя их вручную?
1 ответ
Вы используете нотацию только для артефактов при объявлении зависимости (@scw
). Это означает, что Gradle будет только извлекать сам артефакт, но не будет использовать транзитивные зависимости из POM.
Попробуйте это вместо этого:
dependencies {
merged 'com.example:core:1.0.0'
}
Не должно ли имя быть flex-core
? По крайней мере, так говорит POM выше.