Получение как Maven, так и SBT использует локальный Artifactory-сервер
Мне нужно, чтобы Maven и SBT использовали локальный сервер Artifactory, который является единственным компьютером, имеющим подключение к Интернету. Серверы, CI-машины и т. Д. Не имеют доступа к внешнему миру.
Я получаю седые волосы с SBT особенно.
SBT Проблемы с подключением к Artifactory
С 0.11.[0..3] я могу SBT получить доступ к Artifactory через следующее:
- Разархивируйте sbt-launcher.jar
- Получить sbt.boot.properties и скопировать его куда-нибудь
- Отредактируйте sbt.boot.properties, чтобы он включал только "локальный" репозиторий и наш сервер Artifactory.
С версиями 0.12 или 0.13 мне не повезло. Я пробовал с инструкциями, найденными здесь: https://github.com/harrah/xsbt/pull/472. Итак, я сделал следующее:
- Я сам построил SBT
- Я поместил файл 'repositories' в ~/.sbt/
Файл репозитория включает в себя:
[repositories]
local
ivy-proxy: http://devserver:8081/artifactory/repo/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
maven-proxy: http://devserver:8081/artifactory/repo/
Я включил '-Dsbt.override.build.repos=true' в команду запуска SBT, которая выглядит следующим образом:
java -Xms1536m -Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=192m -Dsbt.override.build.repos=true -Dsbt.global.base=/Users/amjr/.sbt/0.13.0-SNAPSHOT -jar /Users/amjr/.bin/.lib/0.13.0-SNAPSHOT/sbt-launch.jar
Но 0.12 и 0.13 отказывают в доступе к Artifactory, но пытаются подключиться напрямую к типу SafeSafe, Maven Central и т. Д.
Артефакт и проблемы, когда SBT действительно получает к нему доступ
Теперь для SBT серии 0.11 я могу подключить его к Artifactory. Тогда возникает проблема, что SBT не может найти пакеты, необходимые для компиляции проекта. Вот пример:
==== local-artifactory-libs-snapshot: tried
http://devserver:8081/artifactory/libs-snapshot/org/scala-sbt/compiler-interface/0.11.3/compiler-interface-src-0.11.3.jar
==== local-artifactory-libs-releases: tried
http://devserver:8081/artifactory/libs-release/org/scala-sbt/compiler-interface/0.11.3/compiler-interface-src-0.11.3.jar
==== local-artifactory-plugins-releases: tried
http://devserver:8081/artifactory/plugins-release/org/scala-sbt/compiler-interface/0.11.3/compiler-interface-src-0.11.3.jar
Это должно быть что-то, связанное с конфигурацией Артефактора. Я был бы признателен, если у кого-то есть указания, как и в каких репозиториях я должен использовать Artifactory, чтобы успешно использовать его с SBT.
1 ответ
У меня есть следующие scala-friendly репозитории, созданные для нашей рабочей среды:
- Инструменты Scala: https://oss.sonatype.org/content/groups/scala-tools/
- TypeSafe: http://repo.typesafe.com/typesafe/releases/
- JFrog: http://repo.jfrog.org/artifactory/libs-releases-local
Упомянутый выше интерфейс компилятора находится в репозитории Typesafe, в частности
http://repo.typesafe.com/typesafe/maven-ivy-releases/org.scala-sbt/compiler-interface/0.11.3/