2016-09-28 102 views
2

我试图运行我springboot应用......这一切开始时我加入了尤里卡弹簧云插件来我gradle.build文件:执行gradle这个bootRun的失败

编译“org.springframework。云:弹簧云起动尤里卡”

当我运行‘gradle这个bootRun’,我得到这个错误:

产生的原因:产生java.io.IOException:不能运行程序“C:\ Program Files \ Java \ jdk1.8.0_91 \ bin \ java.exe“。 CreateProcess错误= 206,文件名太长。

我的build.gradle是:

import java.text.SimpleDateFormat 

buildscript { 
    ext { 
    springBootVersion = '1.3.2.RELEASE' 
    elasticSearchVersion = '2.2.0' 
    groovyVersion = '2.4.5' 
    } 
    repositories { 
    jcenter() 
    mavenCentral() 
    } 
    dependencies { 
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
    classpath 'io.spring.gradle:dependency-management-plugin:0.5.5.RELEASE' 
    classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0' 
    classpath 'org.kordamp.gradle:stats-gradle-plugin:0.1.5' 
    } 
} 

apply plugin: 'java' 
apply plugin: 'groovy' 
apply plugin: 'eclipse-wtp' 
apply plugin: 'idea' 
apply plugin: 'spring-boot' 
apply plugin: 'io.spring.dependency-management' 
apply plugin: 'com.github.ben-manes.versions' 
apply plugin: 'org.kordamp.gradle.stats' 

def buildDate = new SimpleDateFormat('yyyyMMdd-hhmmss').format(new Date()) 
version = '1.0.RC1.' + buildDate 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

repositories { 
    jcenter() 
    mavenCentral() 
    maven { url "https://repo.spring.io/snapshot" } 
    maven { url "https://repo.spring.io/milestone" } 
} 

ext['elasticsearch.version'] = elasticSearchVersion 
ext['groovy.version'] = groovyVersion 
ext['guava.version'] = '18.0' 
ext['lombok.version'] = '1.16.6' 

dependencyManagement { 
    imports { 
    mavenBom "org.springframework.boot:spring-boot-starter-parent:${springBootVersion}" 
    mavenBom "org.springframework.cloud:spring-cloud-starter-parent:Brixton.M5" 
    mavenBom 'io.spring.platform:platform-bom:2.0.2.RELEASE' 
    } 
} 

dependencies { 
    compile('org.springframework.boot:spring-boot-starter-actuator') 
    compile('org.springframework.boot:spring-boot-starter-aop') 
    compile('org.springframework.boot:spring-boot-starter-cache') 
    compile('org.springframework.cloud:spring-cloud-starter-hystrix')  
    compile 'org.jadira.usertype:usertype.extended:5.0.0.GA' 
    compile('org.springframework.boot:spring-boot-starter-data-jpa') 
    compile('org.springframework.boot:spring-boot-starter-data-rest') 
    //compile('org.springframework.data:spring-data-rest-hal-browser') 
    compile('org.springframework.boot:spring-boot-devtools') 
    compile('org.springframework.boot:spring-boot-starter-hateoas') 
    compile('org.projectlombok:lombok') 
    compile('org.springframework.boot:spring-boot-starter-thymeleaf') 
    compile('org.springframework.boot:spring-boot-starter-web') 
    compile "org.elasticsearch:elasticsearch:${elasticSearchVersion}" 
    compile 'commons-lang:commons-lang' 
    compile 'commons-codec:commons-codec' 
    compile 'commons-collections:commons-collections' 
    compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' 
    compile 'org.springframework.boot:spring-boot-starter-freemarker' 
    compile 'de.codecentric:spring-boot-admin-starter-client:1.3.2'  
    compile 'org.flywaydb:flyway-core'  
    compile('com.domingosuarez:oneltico:0.1.2') 
    compile("org.springframework:spring-jms") 
    compile("org.apache.activemq:activemq-broker") 
    compile 'org.apache.activemq:activemq-pool'  
    compile 'org.springframework.cloud:spring-cloud-starter-eureka' 
    compile 'com.mashape.unirest:unirest-java:1.4.9'  
    runtime "org.postgresql:postgresql:9.4-1203-jdbc42" 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

eclipse { 
    classpath { 
    containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER') 
    containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8' 
    } 
} 

springBoot { 
    executable = true 
} 

我把插件出来并正确执行。

我知道它应该是一个Windows问题的长路径,但我怎么能给出一个解决方案?

+1

http://tuhrig.de/gradles- bootrun-and-windows-command-length-limit/ –

+0

谢谢tim_yates!我在这行添加了简单的引号:it.toURL()。toString()。replaceFirst('/ file:/ + /','/') –

回答

2

tim_yates是对的,谢谢!

我从链接中抓取代码并将其粘贴到我的build.gradle文件的末尾,它像一颗宝石一样工作!

我添加的代码是:

task pathingJar(type: Jar) { 
    dependsOn configurations.runtime 
    appendix = 'pathing' 

    doFirst { 
     manifest { 
      attributes "Class-Path": configurations.runtime.files.collect { 
       it.toURL().toString().replaceFirst('/file:/+/', '/') 
       }.join(' ') 
     } 
    } 
} 

bootRun { 
    dependsOn pathingJar 
    doFirst { 
     classpath = files("$buildDir/classes/main", "$buildDir/resources/main", pathingJar.archivePath) 
    } 
} 

注:我从linkcode得到它的工作虽然增加了一些简单的引号(')..

相关问题