我目前将凭证文件的路径设置如下:
credentials += Credentials(Path.userHome / ".myfolder" / "my.credentials")
在我的本地计算机上有效,因为Path.userHome
产生~
。但是,在Jenkins上,Path.userHome
的结果为/root
,在构建时我无法在.myfolder
下创建/root
,因为出现了拒绝权限错误。
我正在尝试将凭证文件的路径更改为/home/jenkins/.myfolder/my.credentials
。但是,当我这样做
credentials += Credentials("/home/jenkins/.myfolder/my.credentials")
我收到一个运行时错误,因为Credentials
的apply方法接受java.io.File。
问题
/home/jenkins/.myfolder/my.credentials
传递给Credentials
?答案 0 :(得分:2)
如果需要文件,请查看the File docs以了解如何制作文件。
credentials += Credentials(new java.io.File("/home/jenkins/.myfolder/my.credentials"))
答案 1 :(得分:2)
进一步扩大Brian McCutchon的答案:
根据SBT的Path.scala源,Path.userHome
返回一个java.io.File
,并且Path包含一个隐式方法implicit def richFile(file: File): RichFile = new RichFile(file)
,用于将File转换为RichFile。
而且,对于RichFile类型,斜杠运算符(/
)已重载,以创建带有附加字符串路径的java.io.File
对象。
因此,如果我们要传递一个不带RichFile
或File
的独立字符串作为Credentials
构造函数的路径,该构造函数需要一个java.io.File
实例作为参数,我们需要使用字符串路径专门创建一个java.io.File
对象,例如File("path/to/file")