使用本地 Artifactory 服务器配置 Intellij IDEA 15.0.4 和 SBT 0.13.7
Posted
技术标签:
【中文标题】使用本地 Artifactory 服务器配置 Intellij IDEA 15.0.4 和 SBT 0.13.7【英文标题】:Configuring Intellij IDEA 15.0.4 and SBT 0.13.7 with local Artifactory server 【发布时间】:2016-07-03 22:05:15 【问题描述】:我在有互联网连接的计算机上安装了 Intellij IDEA 15.0.4 + Scala 插件(2.2.0),创建了一个新的 SBT 项目并将所有外部依赖项添加到项目中:
i.stack.imgur.com/v560H.png
但是,当我尝试在我们的隔离网络(没有互联网)中针对我们的 Artifactory 服务器做同样的事情时,我收到了以下消息:
错误:导入 SBT 项目时出错:...
http://zzz:8081/artifactory/scala_local/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar:::::::::::::::::::::::::::::::::::::::::::::: :: UNRESOLVED DEPENDENCIES :: :::::::::::::::::::::::::::::::::::::::::::::: :: org.fusesource.jansi#jansi;1.11: not found ::::::::::::::::::::::::::::::::::::::::::::::
:: 使用详细或调试消息级别获取更多详细信息未解决 依赖:org.fusesource.jansi#jansi;1.11: not found Error during sbt 执行:检索所需库时出错(请参阅 C:\Users....sbt\boot\update.log 完整日志)错误:无法 检索 jansi 1.11
在 C:\Users....IdeaIC15\system\log\sbt.last.log 中查看完整日志
所以我认为我需要将 jansi 1.11 升级到 Artifactory(到 /org/fusesource/jansi/jansi/1.11/)。 将 jansi 上传到 Artifactory 后,我刷新了 SBT 并开始收到以下消息:
错误:导入 SBT 项目时出错:sbt 执行期间出错:否 指定或检测到 Scala 版本
所以我猜这与 Scala 在 Artifactory 中不可用的事实有关?如果是这个原因,手动将所有 jar 上传到各自的路径似乎是不合理的,而且我在多次尝试中都无法“猜测”路径......所以我很确定我在这里做错了什么。 ..
这是我的 build.sbt:
name := "未命名"
版本 := "1.0"
scalaVersion := "2.10.4"
这是我的 .sbt\repositories:
[repositories] local my-ivy-proxy-releases: http://zzz:8081/artifactory/scala_local/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext] my-maven-proxy-releases: http://zzz:8081/artifactory/scala_local/
(对不起布局,不允许我发布超过 2 个链接...)
我在这里检查了一些类似的问题,似乎没有任何帮助......
感谢您对我应该检查/阅读的内容的帮助... 有没有办法自动将所有依赖项部署到 Artifactory 中的正确路径?
***编辑: 好的,所以我删除了 .sbt\repositories 文件,使 IntelliJ 缓存无效并重新启动,创建了一个新的 SBT 项目...... 这似乎也没有帮助 now it seems that it doesn't recognize the build.sbt syntax anymore... 即使我添加了解析器,它也会完全忽略它...... 我手动删除了 /.sbt/boot/other/ 中的目录(那里有 jansi 和 scala-sbt),现在它无法再次解析 jansi,只是这次它尝试连接到 repo1.maven.org ... :
Error:Error while importing SBT project:<br/>...<br/><pre> https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar
::::::::::::::::::::::::::::::::::::::::::::::
:: UNRESOLVED DEPENDENCIES ::
::::::::::::::::::::::::::::::::::::::::::::::
:: org.fusesource.jansi#jansi;1.11: not found
::::::::::::::::::::::::::::::::::::::::::::::
:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: org.fusesource.jansi#jansi;1.11: not found
Error during sbt execution: Error retrieving required libraries
(see C:\Users\...\.sbt\boot\update.log for complete log)
Error: Could not retrieve jansi 1.11
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; support was removed in 8.0</pre><br/>See complete log in <a href="C:\Users\...\.IdeaIC15\system\log\sbt.last.log">C:\Users\...\.IdeaIC15\system\log\sbt.last.log</a>
谢谢, 帕
【问题讨论】:
你的 build.sbt 文件中有解析器吗? 嗨@zee,我在build.sbt 中添加了以下行,它似乎完全忽略了它:resolvers += "Artifactory" at "zzz:8081/artifactory/scala_local" 【参考方案1】:我们遇到了类似的问题。
最终解决问题的是删除 .sbt\repository 文件。 然后可以使用默认存储库解决所有依赖关系。
【讨论】:
嗨@Avi,我删除了 \.sbt\repositories 文件,使 IntelliJ 缓存无效并重新启动,创建了一个新的 SBT 项目......这似乎没有帮助,现在看来它不再识别 build.sbt 语法...即使我按照 Zee 的建议添加了解析器,它也完全忽略了它...我手动删除了 /.sbt/boot/other/ 中的目录(有 jansi 和 scala- sbt there),现在它无法再次解析 jansi。 右键项目点击“添加框架支持...”,添加Scala技术。然后 Intellij IDEA 会识别 build.sbt【参考方案2】:这是您使用的 IDE 的问题,特别是其中的 scala 插件。您只需转到创建 build.sbt 的文件夹即可解决此问题。删除“project”文件夹并打开cmd,对该文件夹运行“sbt”命令,将创建一个新的项目文件夹。现在您可以在 IDE 中打开它。
可能是你一开始就在ide中发现了一些问题,如果你构建一次项目,所有的问题都会消失。
【讨论】:
以上是关于使用本地 Artifactory 服务器配置 Intellij IDEA 15.0.4 和 SBT 0.13.7的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Gradle 1.12 版发布(部署)本地(.war .jar)文件到 Artifactory?
Jenkins Artifactory 插件:请求版本信息时出错:连接被拒绝
Artifactory:升级到新的 Artifactory 5.10.3 并支持新的 Pypi 后,本地 Pypi 存储库“慢”