I'm trying to run a custom task from inside a regular task.
My custom task is:
class SshTask extends DefaultTask {
String user
String host
String command
@TaskAction
void run() {
project.exec {
commandLine 'ssh', "$u...@$host", command
}
}
}
My regular task is :
task deploy {
description = 'Deploy the download to remote server. Specify $user,
$host,
and $deploymentDir.'
doLast {
ssh = new SshTask()
ssh.configure {
user = server.user
host = server.host
command = "mkdir -vp $server.dir"
}
ssh.execute()
}
}
However, this fails with :
* Exception is:
org.gradle.api.tasks.LocationAwareTaskExecutionException: Build file
'/home/ceefour/project/Bippo/magento-downloader/build.gradle'
Execution failed for task ':deploy'.
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:66)
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.execute(DefaultTaskExecuter.java:43)
at
org.gradle.api.internal.project.taskfactory.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:32)
at
org.gradle.api.internal.project.taskfactory.ExecutionShortCircuitTaskExecuter.execute(ExecutionShortCircuitTaskExecuter.java:50)
at
org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExecuter.java:57)
at
org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecuter.java:35)
at
org.gradle.api.internal.tasks.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:32)
at org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:231)
at
org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:167)
at
org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:160)
at
org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:78)
at
org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameResolvingBuildExecuter.java:113)
at
org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.java:54)
at
org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:153)
at
org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:107)
at
org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:75)
at org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:41)
at org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:27)
at
org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:209)
at
org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:193)
at org.gradle.launcher.Main.execute(Main.java:55)
at org.gradle.launcher.Main.main(Main.java:40)
at
org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:46)
at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:28)
at org.gradle.launcher.GradleMain.main(GradleMain.java:24)
Caused by: java.lang.NullPointerException
at
org.gradle.api.internal.AbstractTask$TaskInfo.access$000(AbstractTask.java:422)
at org.gradle.api.internal.AbstractTask.<init>(AbstractTask.java:99)
at org.gradle.api.internal.AbstractTask.<init>(AbstractTask.java:89)
at org.gradle.api.DefaultTask.<init>(DefaultTask.java:31)
at
SshTask.<init>(/home/ceefour/project/Bippo/magento-downloader/build.gradle)
at
build_73qscsirv2k4ajt9o1pf1hrome$_run_closure1_closure2.doCall(/home/ceefour/project/Bippo/magento-downloader/build.gradle:33)
at
org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:445)
at
org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:432)
at
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:58)
... 24 more
It means it fails during :
ssh = new SshTask()
What is the proper way to execute SshTask ? I don't want to create a named
task for it.
Also SshTask may also be called from inside another custom task, so SshTask
is not a "goal" but it's an "action".
Thank you.
-----
http://www.HendyIrawan.com
--
View this message in context:
http://gradle.1045684.n5.nabble.com/How-to-run-ad-hoc-anonymous-task-without-naming-the-task-tp3332909p3332909.html
Sent from the gradle-user mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email