2014-10-02 80 views
0

我想知道是否有任何gradle任务或任何其他实用程序将添加依赖关系例如,如何自动添加gradle依赖关系

dependencies { 
    ... // so far dependencies  
    compile 'com.new.dependency:x.y" 
} 

的build.gradle文件,而不是手动键入它。

我试图编写IntelliJ插件,将自动添加一个库到任何项目。到目前为止,我需要分析/解析文档内容,这很乏味。

例如,当您在IntelliJ中进行项目设置并添加库时,会自动添加代码。

+0

我正在寻找Crashlytics在其Android Studio插件中引入的内容。它在build.dependencies中添加了一个新行。 – 2014-10-03 08:19:57

回答

4

您可以指定集合为你的依赖,比如:

dependencies { 
    compile ['org.slf4j:slf4j-api:1.7.5','org.apache.commons:commons-lang3:3.1'] 
} 

这意味着你可以使用任何可以产生一个列表。如果你的插件保持像一个文件:

compile.dependencies:

org.slf4j:slf4j-api:1.7.5 
org.apache.commons:commons-lang3:3.1 

然后,你可以有依赖关系到像项目:

dependencies { 
    compile file('compile.dependencies').readLines() 
} 

插件的用户将必须知道将这些行添加到他们的build.gradle。或者,更好的,你可以捆绑组态到一个包含文件,如:

subprojects() { 
    dependencies { 
    if (file('compile.dependencies').exists()) { 
     compile file('compile.dependencies').readLines() 
    } 

    if (file('runtime.dependencies').exists()) { 
     runtime file('runtime.dependencies').readLines() 
    } 
    } 
} 

那么您的用户将只需要使用“从适用:”包括的配置。

+0

我想创建一个插件,所以用户什么都不做,它是我编辑build.gradle文件的插件。我正在寻找像Crashlytics插件那样的东西。 – 2014-10-03 08:51:16

+0

那么,您的插件或用户可以添加一个“apply from:”行来包含配置,或者您可以尝试解析/更新build.gradle文件。国际海事组织后者是无望的,因为可以指定各种方式的gradle依赖关系。 – 2014-10-03 14:36:28

+0

@DaveSmith在哪里保留文件compile.dependencies。我应该指定完整路径吗? – Adi 2017-01-31 05:29:34

0

没有这样的工具,也没有实用。有可能使用tooling API向项目添加依赖项,但所引入的更改不会被序列化为配置(build.gradle)文件。