为了使工件分离,包的来源不同,我的开发环境也很干净; 我settings.xml为项目组使用单独的文件.所以我用命令调用maven:
mvn -s $PROJECT_ROOT/mvn_settings.xml compile
Run Code Online (Sandbox Code Playgroud)
如何以类似的方式配置sbt?我的工作区提供了一个内部托管的JFrog存储库,它启用了sbt和Ivy插件.我尝试用各种关键字查找搜索引擎,但找不到匹配的文档.如果这是相关的,我使用带有Scala插件的IntelliJ Idea CE.
编辑1: 我希望能够控制我的工件存储位置,它们的来源以及它们与各个项目的关联.
编辑2:考虑两个settings.xml
对于我来自maven central的最小lib的随机项目:https://pastebin.com/nLc1PGa3
我公司的项目在一个大垃圾箱中:https://pastebin.com/R6a4jGQC所有来自不同的来源,在各自的文件夹中.此外,我可以独立移动我的项目,而不用担心哪个依赖链接可能会破坏其他无关的东西.
首先通过Maven中的settings.xml对事物进行分组并不是最好的方法.更好的方法是使用存储库管理器,它可以具有到特定存储库的路由,并分离存储库及其特定意图.(我使用单个settings.xml多年来一直没有更改.只有我的存储库管理器中的配置正在处理;这使生活更轻松,也在CI系统上).
根据sbt的文档,您可以在文件中配置这样的代理存储库~/.sbt/repositories:
[repositories]
local
my-ivy-proxy-releases: http://repo.company.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
my-maven-proxy-releases: http://repo.company.com/maven-releases/
Run Code Online (Sandbox Code Playgroud)
尽管稍后或很快我会建议您正在构建的任何项目中遵循与 @khmarbaise 相同的做法。因为如果存储库来自相同的文件夹group,artifact或者即使它们不同maven/提供使用不同指定的依赖项构建不同项目的sbt支持,则似乎没有必要为存储库保留不同的文件夹。
与 Maven 类似,可以有一个构建设置串联,其build.sbt作用如下:
它们按以下顺序附加:
- .scala 文件中的 Build.settings 和 Project.settings 中的设置。
- 您的用户全局设置;例如,在 ~/.sbt/build.sbt 中,您可以定义影响所有项目的设置。
- 由插件注入的设置,请参阅接下来的使用插件。
- 项目中 .sbt 文件的设置。
- 构建定义项目(即项目内的项目)添加了全局插件(~/.sbt/plugins)的设置。使用插件可以更好地解释这一点。后面的设置会覆盖前面的设置。整个设置列表构成了构建定义。
因此,您可以覆盖全局 build.sbt 以使用指定存储库路径
"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2618 次 |
| 最近记录: |