2014-11-02 51 views
5

在Maven的土地,只要我想简单地拉下传递依赖特定POM文件,我只是打开一个shell,导航到POM所处的位置,并运行:等价于Maven的“拷贝相关性”的Gradle?

mvn dependency:copy-dependencies 

而且热潮,Maven在当前目录内创建一个target/目录,并将所有传递提取的JAR放置到该位置。

我现在尝试来切换到Gradle,但Gradle似乎没有相同的功能。所以我问:Gradle是否与Maven的copy-dependencies等价?如果是这样,有人可以提供一个例子吗?如果不是,其他开发者是否认为这对Gradle社区是一个有价值的贡献?

回答

9

有在gradle这个没有copy-dependencies等价的,但这里的,做任务是:

apply plugin: 'java' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'com.google.inject:guice:4.0-beta5' 
} 

task copyDependencies(type: Copy) { 
    from configurations.compile 
    into 'dependencies' 
} 

这是值得做贡献?你可以看到这很容易做到,所以我不这么认为。

+5

对于任何Gradle新手来说,请将此代码片段放到您机器某处的'build.gradle'文件中。然后打开一个shell,导航到你创建'build.gradle'并输入'gradle copyDependencies'的地方。 Gradle执行后,会出现一个'dependencies'目录,其中包含所有可传递的代码。你现在可以编辑这个'build.gradle'来包含你喜欢的任何依赖,并且每次在你运行'gradle copyDependencies'之前确保删除'dependencies'。 – smeeb 2014-11-02 11:12:52

+0

如果您想复制运行时依赖关系,请将'from'目标更改为''configurations.runtime'' – JasonM1 2014-11-02 13:48:12

+0

对于* compile * * * runtime *和* compile *将被复制。 – Opal 2014-11-02 13:54:30