为了保持工件分离,包的来源不同,我的开发环境也很干净;我为项目组使用单独的settings.xml
文件。所以我用命令调用maven:
mvn -s $PROJECT_ROOT/mvn_settings.xml compile
如何以类似的方式配置sbt?我的工作区提供了一个内部托管的JFrog存储库,它启用了sbt和Ivy插件。我尝试用各种关键字查找搜索引擎,但找不到匹配的文档。 我使用带有Scala插件的IntelliJ Idea CE,如果这是相关的。
编辑1:我希望能够控制工件的存储位置,原点以及与各个项目的关联。
编辑2:考虑两个settings.xml的
对于我来自maven central的最小lib的随机项目:https://pastebin.com/nLc1PGa3
我公司的项目在一个大垃圾箱中:https://pastebin.com/R6a4jGQC所有来自不同的来源,都在各自的文件夹中。此外,我可以独立移动我的项目,而不用担心哪个依赖链接可能会破坏其他无关的东西。
答案 0 :(得分:1)
您应该能够使用Configuration对象来执行此操作。
例如在.sbt文件中:
val MyConfig = Configurations.config("my-config").extend(Compile)
(resolvers in MyConfig) := Seq(???)
然后当你使用sbt shell时,你可以调用
my-config/compile
它将使用您仅为该范围声明的设置。 然后,您可以根据需要声明任意数量的配置。
答案 1 :(得分:1)
我认为您正在寻找公司内部JFrog存储库的发布工件。
可以在此处找到相关的JFrog文档 - https://www.jfrog.com/confluence/display/RTF/SBT+Repositories#SBTRepositories-DeployingArtifacts
答案 2 :(得分:1)
虽然在任何时候或者很快我会提出与@khmarbaise相同的做法,在你正在建造的任何项目中都要遵循。
因为如果存储库来自同一个group
和artifact
,或者即使它们与maven
/ sbt
不同,似乎没有必要为存储库保留不同的文件夹支持使用不同指定的依赖项构建不同的项目。
与maven相似,build.sbt
"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"
可以作为 - {/ p>
它们按此顺序附加:
- .scala文件中Build.settings和Project.settings的设置。
- 您的用户全局设置;例如,在〜/ .sbt / build.sbt中,您可以定义影响所有项目的设置。
- 插件注入的设置,请参阅下一个插件。
- 项目中.sbt文件的设置。
- 构建定义项目(即项目内的项目)添加了来自全局插件(〜/ .sbt / plugins)的设置。使用插件 更多解释。以后的设置会覆盖之前的设整个 设置列表构成了构建定义。
因此,您可以覆盖全局build.sbt以使用
指定存储库路径{{1}}