2013-01-23 156 views
4

我想使用一個Flex庫(SWC),它定義了它的POM中的一些依賴關係。我希望Gradle能夠自動提供這些傳遞性依賴。但是,gradle dependencies只顯示手動添加的一個依賴項。Gradle忽略傳遞依賴關係

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:[email protected]' 
} 

爲什麼搖籃忽略從依賴POM?是因爲「外部」範圍? 是否可以在不添加它們的情況下獲得這些依賴關係?

回答

7

聲明依賴關係時使用artifact only notation@scw)。這意味着Gradle只會檢索工件本身,但不會使用POM中的傳遞依賴關係。

試試這個:

dependencies { 
    merged 'com.example:core:1.0.0' 
} 

不應該的名字是flex-core?至少這就是POM上面所說的。

+0

你說得對。我剛剛刪除了@ @src並且它可以工作。 –

+0

我已更新我的問題並修復了工件名稱。感謝您指出。 –