2016-11-20 102 views
4

的依賴我加copyBootstrapbuild.gradle我收到一個錯誤,當嘗試運行構建任務:無法更改配置

失敗:建立失敗,一個例外。

  • 出了什麼問題:

的問題發生在配置根工程」。 在包含在依賴關係解析中後,無法更改配置':providedCompile'的依賴關係。

這個問題怎麼解決?我在互聯網上搜索,但沒有找到解決方案。我從this link獲得copyBootstrap任務。他們的目標是將org.webjars羣組中的所有內容提取到特定路徑。

我使用搖籃3.2和IntelliJ IDEA的2016年2月5日

//group 'org' 
//version '1.0-SNAPSHOT' 

task wrapper(type: Wrapper) { 
    gradleVersion = '3.2' 
    distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip" 
} 


buildscript { 
    repositories { 
     jcenter() 
    } 

    dependencies { 
     classpath 'org.akhikhl.gretty:gretty:1.4.0' 
    } 
} 

repositories { 
    mavenCentral() 
    jcenter() 
} 

//apply plugin: 'java' 
//apply plugin: 'eclipse-wtp' 
//apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin' 
apply plugin: 'war' 
apply plugin: 'org.akhikhl.gretty' 


sourceCompatibility = 1.8 
targetCompatibility = 1.8 

dependencies { 

    //compile group: 'org.akhikhl.gretty', name: 'gretty', version: '1.4.0' 


    // ******************************************************************************************************** 
    // SPRING FRAMEWORK, ORM Y H2DB 
    // ******************************************************************************************************** 

    compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.4.RELEASE' 
    compile group: 'org.springframework', name: 'spring-orm', version: '4.3.4.RELEASE' 
    compile group: 'org.springframework', name: 'spring-jdbc', version: '4.3.4.RELEASE' 
    compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.3.Final' 


    // ******************************************************************************************************** 
    // JACKSON DATABIND 
    // ******************************************************************************************************** 

    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.4' 
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.4' 


    // ******************************************************************************************************** 
    // THYMELEAF 
    // ******************************************************************************************************** 

    compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.2.RELEASE' 


    // ******************************************************************************************************** 
    // SERVLET 
    // ******************************************************************************************************** 

    compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' 


    // ******************************************************************************************************** 
    // MYSQL CONNECTOR 
    // ******************************************************************************************************** 

    //compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5' issues with time zone 
    compile 'mysql:mysql-connector-java:5.1.6' 

    // ******************************************************************************************************** 
    // WEB RESOURCES 
    // ******************************************************************************************************** 

    compile group: 'org.webjars', name: 'angularjs', version: '1.5.8' 
    compile group: 'org.webjars', name: 'jquery', version: '2.1.4' 
    compile group: 'org.webjars', name: 'bootstrap', version: '3.3.7' 
    compile group: 'org.webjars', name: 'jquery-ui', version: '1.12.1' 
    compile group: 'org.webjars', name: 'modernizr', version: '2.8.3' 


    // ******************************************************************************************************** 
    // JUNIT AND SPRING TEST 
    // ******************************************************************************************************** 

    testCompile group: 'junit', name: 'junit', version: '4.12' 
    testCompile group: 'org.springframework', name: 'spring-test', version: '4.3.4.RELEASE' 


    // ******************************************************************************************************** 
    // GOOGLE DRIVE API 
    // ******************************************************************************************************** 

    compile group: 'com.google.api-client', name: 'google-api-client', version: '1.22.0' 
    compile group: 'com.google.apis', name: 'google-api-services-drive', version: 'v2-rev245-1.22.0' 
    compile group: 'com.google.api-client', name: 'google-api-client-java6', version: '1.22.0' 
    compile group: 'com.google.oauth-client', name: 'google-oauth-client-jetty', version: '1.22.0' 


    // ******************************************************************************************************** 
    // DROPBOX API 
    // ******************************************************************************************************** 

    compile group: 'com.dropbox.core', name: 'dropbox-core-sdk', version: '1.8.2' 


    // ******************************************************************************************************** 
    // TWITTER API 
    // ******************************************************************************************************** 

    compile group: 'org.twitter4j', name: 'twitter4j-core', version: '4.0.5' 


// compile group: 'org.slf4j', name: 'slf4j-mylearn.api', version: '1.7.21' 
// compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.21' 

// compile files("twitter/main/webapp/") // add this path as a classpath 

} 


task copyBootstrap(type: Copy) { 
    into "$buildDir/static_resources" 
    configurations.compile 
      .files({ it.group.equals("org.webjars")}) 
      .each { 
     from zipTree(it) 
    } 
} 

//build.dependsOn(copyBootstrap) 

task copyToLib2(type: Copy) { 
    into "$buildDir/output/libs" 
    from configurations.runtime 
} 

war { 
    archiveName = 'ROOT.war' 
    destinationDir = file('webapps') 
} 


// ******************************************************************************************************** 
// GRETTY SETTINGS 
// ******************************************************************************************************** 

/* Change context path (base url). otherwise defaults to name of project */ 
gretty { 
    port = 8081 
    contextPath = '' 
} 

回答

1

這個問題似乎涉及到org.akhikhl.gretty插件,你要使用。如果我嘗試使用上述gradle這個文件我得到以下輸出生成一個項目:

C:\ws\PLAYGROUND\test123>gradle wrapper --stacktrace 
Changed dependencies of configuration ':providedCompile' after it has been included in dependency resolution. This behaviour has been deprecated and is cheduled to be removed in Gradle 3.0. 
Changed dependencies of parent of configuration ':compile' after it has been resolved. This behaviour has been deprecated and is scheduled to be removed in Gradle 3.0 
Changed strategy of configuration ':compile' after it has been resolved. This behaviour has been deprecated and is scheduled to be removed in Gradle 3.0 
Changed dependencies of configuration ':grettyProvidedCompile' after it has been included in dependency resolution. This behaviour has been deprecated and is scheduled to be removed in Gradle 3.0. 

⋮ 

* Exception is: 
org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'test123'. 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61) 
    ⋮ 
Caused by: org.gradle.api.InvalidUserDataException: Cannot change dependencies of configuration ':compile' after it has been resolved. 
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.validateMutation(DefaultConfiguration.java:578) 
    at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$2.run(DefaultConfiguration.java:137) 
    ⋮ 
    at org.akhikhl.gretty.GrettyPlugin$_addDependencies_closure11.doCall(GrettyPlugin.groovy:130) 
    ⋮ 

這是gretty插件似乎使用已與gradle這個3.0

刪除功能有issue #306有很久以前就有報道,這很好地描述了你的問題。

鑑於這樣一個小項目的開放問題的數量和缺乏活動的問題,我不認爲這個插件是一個很大的幫助,你可能會更好使用不同的東西。