2017-03-18 11 views
0

私はスプリングブートアプリケーションを持っていて、それをgradleで実行します。 は私のbuild.gradleでは私が通常ServerPortConfigurationBeanから新しいサーバーポートを取得build.gradleファイルのアプリケーションプロパティ値

def buildPort 
task calculateServerPort { 
    def os = new ByteArrayOutputStream() 
    javaexec { 
     classpath = sourceSets.main.runtimeClasspath 
     main = 'com.kiporov.ServerPortConfigurationBean' 
     standardOutput = os 
    } 
    buildPort = os.toString() 
    println 'New Server Port ' + buildPort 
    project.ext.myport = buildPort 

} 

processResources { 
    dependsOn(calculateServerPort) 
    filesMatching("**/application.yml") { 
     expand(project: properties) 
    } 
} 

bootRun { 
    addResources = false 
} 

を書きました。ログ内に表示されます

New Server Port 59981 

:second-subsystem-service:compileJava UP-TO-DATE 
:second-subsystem-service:calculateServerPort UP-TO-DATE 
:second-subsystem-service:processResources FAILED 
FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':second-subsystem-service:processResources'. 
> Could not copy file 'C:\Users\novde\IdeaProjects\diplom-ver2\diplom\second-subsystem-service\src\main\resource\application.yml' to 'C:\Users\novde\IdeaProjects\diplom-ver2\diplom\second-subsystem-service\build\resources\main\application.yml'. 

私はこの問題を理解していません。なぜ実行プロセスがファイルをコピーできないのですか?

更新 私は--stacktraceと実行しようとしましたが、このログが表示されます。 私のバージョン3.4.1

C:\Users\novde\IdeaProjects\diplom-ver2\diplom\second-subsystem-service>gradlew bootRun --stacktrace 
Starting a Gradle Daemon, 2 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details 
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead. 
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead. 
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead. 
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead. 
New Server Port 56360 

:second-subsystem-service:compileJava UP-TO-DATE 
:second-subsystem-service:calculateServerPort UP-TO-DATE 
:second-subsystem-service:processResources FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':second-subsystem-service:processResources'. 
> Could not copy file 'C:\Users\novde\IdeaProjects\diplom-ver2\diplom\second-subsystem-service\src\main\resource\application.yml' to 'C:\Users\novde\IdeaProjects\diplom-ver2\diplom\second-subsystem-service\ 
build\resources\main\application.yml'. 

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

* Exception is: 
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':second-subsystem-service:processResources'. 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55) 
     at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 
     at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
     at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 
     at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46) 
     at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) 
     at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 
     at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 
     at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228) 
     at org.gradle.internal.Transformers$4.transform(Transformers.java:169) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215) 
     at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77) 
     at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113) 
     at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 
     at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) 
     at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) 
     at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) 
     at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30) 
     at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:256) 
     at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:253) 
     at org.gradle.internal.Transformers$4.transform(Transformers.java:169) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:175) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119) 
     at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102) 
     at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71) 
     at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) 
     at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 
     at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75) 
     at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) 
     at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49) 
     at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31) 
     at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67) 
     at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) 
     at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) 
     at org.gradle.util.Swapper.swap(Swapper.java:38) 
     at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) 
     at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) 
     at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 
     at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 
     at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) 
     at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) 
     at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 
     at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46) 
Caused by: org.gradle.api.GradleException: Could not copy file 'C:\Users\novde\IdeaProjects\diplom-ver2\diplom\second-subsystem-service\src\main\resource\application.yml' to 'C:\Users\novde\IdeaProjects\dip 
lom-ver2\diplom\second-subsystem-service\build\resources\main\application.yml'. 
     at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:79) 
     at org.gradle.api.internal.file.copy.DefaultFileCopyDetails.copyTo(DefaultFileCopyDetails.java:104) 
     at org.gradle.api.internal.file.copy.FileCopyAction$FileCopyDetailsInternalAction.processFile(FileCopyAction.java:44) 
     at org.gradle.api.internal.file.copy.NormalizingCopyActionDecorator$1$1.processFile(NormalizingCopyActionDecorator.java:66) 
     at org.gradle.api.internal.file.copy.DuplicateHandlingCopyActionDecorator$1$1.processFile(DuplicateHandlingCopyActionDecorator.java:60) 
     at org.gradle.api.internal.file.copy.CopyFileVisitorImpl.processFile(CopyFileVisitorImpl.java:62) 
     at org.gradle.api.internal.file.copy.CopyFileVisitorImpl.visitFile(CopyFileVisitorImpl.java:46) 
     at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker$1.visitFile(Jdk7DirectoryWalker.java:85) 
     at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker$1.visitFile(Jdk7DirectoryWalker.java:58) 
     at org.gradle.api.internal.file.collections.jdk7.Jdk7DirectoryWalker.walkDir(Jdk7DirectoryWalker.java:58) 
     at org.gradle.api.internal.file.collections.DirectoryFileTree.walkDir(DirectoryFileTree.java:171) 
     at org.gradle.api.internal.file.collections.DirectoryFileTree.visitFrom(DirectoryFileTree.java:149) 
     at org.gradle.api.internal.file.collections.DirectoryFileTree.visit(DirectoryFileTree.java:134) 
     at org.gradle.api.internal.file.collections.FileTreeAdapter.visit(FileTreeAdapter.java:110) 
     at org.gradle.api.internal.file.CompositeFileTree.visit(CompositeFileTree.java:87) 
     at org.gradle.api.internal.file.copy.CopySpecActionImpl.execute(CopySpecActionImpl.java:39) 
     at org.gradle.api.internal.file.copy.CopySpecActionImpl.execute(CopySpecActionImpl.java:24) 
     at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:648) 
     at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:650) 
     at org.gradle.api.internal.file.copy.DefaultCopySpec.walk(DefaultCopySpec.java:458) 
     at org.gradle.api.internal.file.copy.DelegatingCopySpecInternal.walk(DelegatingCopySpecInternal.java:236) 
     at org.gradle.api.internal.file.copy.CopySpecBackedCopyActionProcessingStream.process(CopySpecBackedCopyActionProcessingStream.java:38) 
     at org.gradle.api.internal.file.copy.DuplicateHandlingCopyActionDecorator$1.process(DuplicateHandlingCopyActionDecorator.java:44) 
     at org.gradle.api.internal.file.copy.NormalizingCopyActionDecorator$1.process(NormalizingCopyActionDecorator.java:57) 
     at org.gradle.api.internal.file.copy.FileCopyAction.execute(FileCopyAction.java:35) 
     at org.gradle.api.internal.file.copy.NormalizingCopyActionDecorator.execute(NormalizingCopyActionDecorator.java:53) 
     at org.gradle.api.internal.file.copy.DuplicateHandlingCopyActionDecorator.execute(DuplicateHandlingCopyActionDecorator.java:42) 
     at org.gradle.api.internal.file.copy.CopyActionExecuter.execute(CopyActionExecuter.java:40) 
     at org.gradle.api.tasks.AbstractCopyTask.copy(AbstractCopyTask.java:179) 
     at org.gradle.language.jvm.tasks.ProcessResources.copy(ProcessResources.java:35) 
     at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123) 
     at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:632) 
     at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:615) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76) 
     ... 70 more 
Caused by: groovy.lang.GroovyRuntimeException: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed: 
SimpleTemplateScript1.groovy: 49: unexpected char: 0xFFFF @ line 49, column 40. 
    /* Generated by SimpleTemplateEngine */ 
             ^

1 error 

     at org.gradle.api.internal.file.copy.FilterChain$3.transform(FilterChain.java:116) 
     at org.gradle.api.internal.file.copy.FilterChain$3.transform(FilterChain.java:110) 
     at org.gradle.api.internal.ChainingTransformer.transform(ChainingTransformer.java:37) 
     at org.gradle.api.internal.file.copy.FilterChain.transform(FilterChain.java:56) 
     at org.gradle.api.internal.file.copy.FilterChain.transform(FilterChain.java:64) 
     at org.gradle.api.internal.file.copy.DefaultFileCopyDetails.open(DefaultFileCopyDetails.java:88) 
     at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:56) 
     at org.gradle.api.internal.file.copy.DefaultFileCopyDetails.copyTo(DefaultFileCopyDetails.java:96) 
     at org.gradle.api.internal.file.AbstractFileTreeElement.copyFile(AbstractFileTreeElement.java:93) 
     at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:74) 
     ... 107 more 


BUILD FAILED 

Total time: 47.613 secs 
+0

あなたは '--stacktrace'とポスト出力でそれを再実行することができますか? – Infinity

答えて

0

私はこの問題を解決します。 これは、ソリューション

build.gradle

import org.apache.tools.ant.filters.ReplaceTokens 
def buildPort 
task calculateServerPort { 
    if (isCalculatePort) { 
     def os = new ByteArrayOutputStream() 
     javaexec { 
      classpath = sourceSets.main.runtimeClasspath 
      // calculate your port here 
      main = 'com.kiporov.ServerPortConfigurationBean' 
      standardOutput = os 
     } 
     // if you really need business logic in Java for calculation, you could use the javaExec task in here 
     buildPort = os.toString() 
     println 'New Server Port ' + buildPort 
     project.ext.buildPort = buildPort // make it available as project.property her 
    } 
} 
task initConfig(type: Copy) { 
    dependsOn(calculateServerPort) 
    if (isCalculatePort) { 
     from('src/main/resource') { 
      include '**/*.yml' 
      filter(ReplaceTokens, tokens: [myPort: buildPort]) 
     } 
     into 'build/resources/main' 

     includeEmptyDirs = false 
    } 
    //with dataContent 
} 

bootRun { 
    dependsOn(initConfig) 
} 

application.yml

server: 
    port: @[email protected] 
関連する問題