gradle bootRun 执行失败
Execution of gradle bootRun fails
我正在尝试 运行 我的 spring 启动应用程序...当我将 eureka spring-cloud 插件添加到我的 gradle.build 文件时,这一切都开始了:
编译'org.springframework.cloud:spring-cloud-starter-eureka'
当我 运行 "gradle bootRun" 时,我得到这个错误:
原因:java.io.IOException:无法运行编程"C:\Program Files\Java\jdk1.8.0_91\bin\java.exe"。 CreateProcess error=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 长路径问题,但我该如何给出解决方案?
tim_yates 说得对,谢谢!
我从 link 中获取代码并将其粘贴到我的 build.gradle 文件的末尾,它像 gem 一样工作!
我添加的代码是:
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)
}
}
注意:我从 link代码中添加了一些简单的引号 (') 以使其正常工作..
我正在尝试 运行 我的 spring 启动应用程序...当我将 eureka spring-cloud 插件添加到我的 gradle.build 文件时,这一切都开始了:
编译'org.springframework.cloud:spring-cloud-starter-eureka'
当我 运行 "gradle bootRun" 时,我得到这个错误:
原因:java.io.IOException:无法运行编程"C:\Program Files\Java\jdk1.8.0_91\bin\java.exe"。 CreateProcess error=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 长路径问题,但我该如何给出解决方案?
tim_yates 说得对,谢谢!
我从 link 中获取代码并将其粘贴到我的 build.gradle 文件的末尾,它像 gem 一样工作!
我添加的代码是:
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)
}
}
注意:我从 link代码中添加了一些简单的引号 (') 以使其正常工作..