我有一个gradle构建文件,其中包含以下任务,需要运行sphinx-build
,我在Mac OS X上使用gradle信息运行它。
task makeDocs(type:Exec) {
workingDir 'sphinx'
commandLine 'sphinx-build'
args = ["-b", "html", "-d", "build/doctrees", "-t", "$platformDir", "build/ppsource", "build/html"]
}
当我运行此任务时,我得到以下异常:
Caused by: net.rubygrapefruit.platform.NativeException: Could not start 'sphinx-build'
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:65)
... 1 more
Caused by: java.io.IOException: Cannot run program "sphinx-build" (in directory "/Users/idoran/Documents/Seebo/dev/SDK/seebosdk_docs/sphinx"): error=2, No such file or directory
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
... 3 more
Caused by: java.io.IOException: error=2, No such file or directory
当我从同一个终端运行sphinx-build时,一切正常。
$ gradle --version
------------------------------------------------------------
Gradle 2.2.1
------------------------------------------------------------
Build time: 2014-11-24 09:45:35 UTC
Build number: none
Revision: 6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a
Groovy: 2.3.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.8.0_65 (Oracle Corporation 25.65-b01)
OS: Mac OS X 10.10.5 x86_64
答案 0 :(得分:5)
您不应该使用commandLine
+ args
。 commandLine
包含可执行文件和所有参数,或executable
+ args
通常是更好的选择。
答案 1 :(得分:3)
我有类似的问题..借助Vampire的解决方案,我能够加强..然而问题似乎是sh文件无法指向确切的文件位置。
意思是,即使正确设置workingDir(其中实际的sh文件驻留),仍然会出现以下异常。
Caused by: java.io.IOException: error=2, No such file or directory
最后,这个post解决了这个问题..
虽然此帖子的问题的原始问题已经解决,但考虑共享将绝对文件路径添加到实际sh文件的解决方案将在未来解决"No such file or directory"
问题。
我遇到了类似的问题,并通过对sh文件的绝对路径引用解决了问题。
我的是,
workingDir = "path_to_the_actual_sh_file_to_be_executed"
executable = new File(workingDir, 'actual.sh')
args = ['configure', 'manageRepo', '-tenant', 'etc...']
答案 2 :(得分:1)
尝试使用./gradlew --stop
停止gradle守护程序
我也遇到了类似的问题,例如:
commandLine = [ "node", "--version"]
它归结为gradle守护程序,该守护程序的缓存位置已不存在(我之前曾更新过节点)。
答案 3 :(得分:0)
可能由于多种原因而发生此错误。不幸的是,从错误消息中并不能始终始终清楚是哪个问题。
hour('2009-07-30 12:58:59') = 12
不存在。在任务运行之前,请确保指定的目录存在,或在hour('12:58:59') = 12
块中创建该目录,如下所示:
import org.apache.spark.sql.expressions.Window
import org.apache.spark.sql.functions._
val rawData = spark.read.csv("data.csv")
// Busy Hours calculation
val windowSpecBusyHours = Window.partitionBy("_c4").orderBy(col("transactions").desc)
val busyHours = rawData
.withColumn("hours", hour(col("_c3")))
.groupBy("_c4", "hours").agg(count("*").alias("transactions"))
.withColumn("dense_rank", dense_rank().over(windowSpecBusyHours))
.select("_c4", "hours", "transactions").where(col("dense_rank") === 1)
busyHours.show(false)
// Less Busy Hours calculation
val windowSpecLessBusyHours = Window.partitionBy("_c4").orderBy(col("transactions").asc)
val lessBusyHours = rawData
.withColumn("hours", hour(col("_c3")))
.groupBy("_c4", "hours").agg(count("*").alias("transactions"))
.withColumn("dense_rank", dense_rank().over(windowSpecLessBusyHours))
.select("_c4", "hours", "transactions").where(col("dense_rank") === 1)
lessBusyHours.show(false)
指定的可执行文件不存在或不在路径上。如其他答案所述,请确保同时指定 workingDir
,或 doFirst
和task makeDocs(type: Exec) {
workingDir 'sphinx'
executable 'sphinx-build'
args = ["-b", "html", /* other args... */]
doFirst {
workingDir.mkdirs()
}
}
。所以:
commandLine
或等效地
executable