Как изменить путь к файлу учетных данных (без переменной среды) - PullRequest
0 голосов
/ 07 февраля 2019

Я в настоящее время устанавливаю путь к файлу учетных данных следующим образом:

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")

, я получаю ошибку времени выполнения, потому что метод apply для Credentials принимает файл java.io.File.

Вопрос

  • Как мне передать /home/jenkins/.myfolder/my.credentials на Credentials?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Чтобы еще больше расширить ответ Брайана МакКатчона:

Согласно исходному тексту SBT Path.scala , Path.userHome возвращает java.io.File, а Path содержит неявный метод implicit def richFile(file: File): RichFile = new RichFile(file) для преобразованияФайл в RichFile.

И оператор косой черты (/) перегружен для типов RichFile для создания объектов java.io.File с путем добавленной строки.

Следовательно, если мы хотим передатьавтономная строка без RichFile или File в качестве пути к конструктору Credentials, для которого в качестве параметра требуется экземпляр java.io.File, нам нужно специально создать объект java.io.File с путем строки, например, File("path/to/file")

0 голосов
/ 07 февраля 2019

Если он ожидает Файл, тогда посмотрите на Файл документов , чтобы узнать, как его создать.

credentials += Credentials(new java.io.File("/home/jenkins/.myfolder/my.credentials"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...