最近我遇到了代码编译的奇怪问题 - 相同的代码在我的开发机器上编译(编译),但在jenkins上失败。
我的开发机器配置:
Jenkins配置:
两者都使用sbt 0.11.2和scala 2.9.1
导致问题的代码与AWS Transcoder服务相关。
val result = new CreateJobRequest()
result.setInput(input.asAWSJobInput)
result.setOutputs(outputs.map(_.asAWSJobOutput))
result.setPipelineId(pipelineId)
这在本地编译好,并在jenkins上返回:
value setOutputs不是com.amazonaws.services.elastictranscoder.model.CreateJobRequest的成员
我尝试了一些事情,比如明确调用转换或将setOutputs param提取到val中。我也试过使用withOutputs - 在jenkins上有类似的结果。 我也尝试过使用setOutput(CreateJobOutput),它在两台机器上运行良好。
这似乎与环境有关,但我现在不知道是什么原因引起的。 非常感谢任何帮助。
最诚挚的问候, Arek
答案 0 :(得分:0)
根据源代码的the 1.3.32 version,setOutputs
不是CreateJobRequest
的成员。但是,它出现在Maven Central的最新版本中 - 1.4.6。
您很可能在本地和Jenkins服务器上与不同版本的AWS API进行比较。
答案 1 :(得分:0)
我想通了,这是与java连接的问题 - 它在新的jdk上运行良好。 @Stephen C感谢您的建议