2017-02-08 15 views
1

Я хочу получить доступ к методам StringUtils в моем сценарии Gradle. Поэтому я определил его MavenRepo в закрытии buildscript. После того, как я добавил оператор импорта, я думал, что смог использовать этот класс. Но ошибка говорит мне иначе. Что мне не хватает?Как импортировать класс из зависимости buildscript в Gradle

gradle.build

import org.apache.commons.lang.StringUtils 

apply plugin: "java" 
apply plugin: "application" 

mainClassName = "com.xetra11.test.Main" 

task execute(){ 
    File file = new File("/log/file.txt") 
    StringUtils.touch("/log/file.txt") 
} 

buildscript { 
    repositories{ 
     mavenCentral() 
    } 
    dependencies { 
     classpath group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' 
    } 
} 

repositories{ 
    mavenCentral() 
} 

dependencies{ 
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' 
} 

Выход ошибки

~/Workspace/Development/Java/gradle_test/ gradle buildDependents 
gradle buildDependents 

FAILURE: Build failed with an exception. 

* Where: 
Build file '/home/xetra11/Workspace/Development/Java/gradle_test/build.gradle' line: 1 

* What went wrong: 
Could not compile build file '/home/xetra11/Workspace/Development/Java/gradle_test/build.gradle'. 
> startup failed: 
    build file '/home/xetra11/Workspace/Development/Java/gradle_test/build.gradle': 1: unable to resolve class org.apache.commons.lang.StringUtils 
    @ line 1, column 1. 
    import org.apache.commons.lang.StringUtils 
    ^

    1 error 


* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

ответ

2

org.apache.commons.lang.StringUtils из его пакета предполагает, в достоянию-Ланг 2.x. Имена пакетов для commons-lang3 были изменены на org.apache.commons.lang3.

Таким образом, либо использовать org.apache.commons:commons-lang:2.6 в зависимости, или изменить свой импорт в org.apache.commons.lang3.StringUtils