如何从gradle中的eclipse .classpath读取依赖项?

时间:2015-07-27 13:00:19

标签: java eclipse gradle classpath

这是eclipse .classpath文件的一个例子

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src/main/java"/>
    <classpathentry kind="src" path="src/main/resources"/>
    <classpathentry kind="src" output="bin/test" path="src/test/java"/>
    <classpathentry kind="src" output="bin/test" path="src/test/resources"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/slf4j-api-1.7.7.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/slf4j-log4j12-1.7.7.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/commons-collections4-4.0.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/commons-codec-1.6.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/commons-io-2.4.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/commons-cli-1.2.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/commons-net-3.3.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/commons-lang-2.4.jar"/>
    <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/opencsv-2.3.jar"/>
   <classpathentry kind="lib" path="/kc-tools-thirdparty/lib/log4j-1.2.17.jar"/>
   <classpathentry kind="output" path="bin/main"/>
</classpath>

在gradle中,我想自动将它们添加到依赖项中。

有没有可以做到这一点的插件? (我知道我可以编写自己的方法来解析XML,但我正在寻找一些通用的方法)

1 个答案:

答案 0 :(得分:4)

我没有测试过,但我会做这样的事情:

//Init classpath file
def classpathFile = file('.classpath')
//parse xml
def cpXml = new XmlParser().parse(classpathFile)
//find all lib entries
def libPaths= []
cpXml.classpathentry.each {
    if('lib' == it.@kind) {
        libPaths.add(project.projectDir.parentFile.absolutePath + it.@path)
    }
}
dependencies{
    compile files(libPaths)
}