scala – 在sbt中添加仅编译时子项目依赖项
发布时间:2020-12-16 18:39:41 所属栏目:安全 来源:网络整理
导读:我有一个多项目包含一个私有宏子项目,其用途仅限于实现其他子项目的方法体.也不应该在其他子项目的运行时类路径上,也不应该在其他子项目的已发布POM中以任何形式显示.因此,其他sbt项目可以在不知道宏子项目的情况下使用此项目中的库. 对于外部依赖,我发现这
我有一个多项目包含一个私有宏子项目,其用途仅限于实现其他子项目的方法体.也不应该在其他子项目的运行时类路径上,也不应该在其他子项目的已发布POM中以任何形式显示.因此,其他sbt项目可以在不知道宏子项目的情况下使用此项目中的库.
对于外部依赖,我发现这个SO Q&A完美无缺,但对于子项目,当我尝试对dependsOn做类似的事情时,sbt抱怨配置“compileonly”找不到. ivyConfigurations += config("compileonly").hide val macro = Project("macro",file("macro")) val lib = Project("lib",file("lib")).dependsOn(macro % "compile->compileonly") 解决方法
该错误是因为项目没有该配置.
val CompileOnly = config("compileonly").hide ivyConfigurations += CompileOnly val macro = Project("macro",file("macro")).configs(CompileOnly) // add config val lib = Project("lib",file("lib")).dependsOn(macro % CompileOnly) 但问题是
解决方案是 val CompileOnly = config("compileonly") val macro = Project("macro",file("macro")).configs(CompileOnly) val lib = Project("lib",file("lib")).dependsOn(macro % CompileOnly) .settings(ivyConfigurations += CompileOnly.hide) 您可能还想熟悉所提供的配置.它是一个标准的Maven / Ivy配置,这意味着jar将在运行时在类路径上提供(例如像JDK或servlet容器),但不能在编译时提供. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- osx – 复制文件,同时跳过存在的文件 – Unix
- angularjs – 避免在页面加载时显示表达式
- 如何在docker容器中执行命令作为bash shell脚本的一部分
- bootstrap下拉菜单与滚动监视器学习笔记(2-2 下拉菜单--属
- angular2 – SystemJS和Webpack有什么区别?
- twitter-bootstrap – 降低bootstrap 3.0 navbar的高度
- scala – 在Seq的每两个相邻元素之间插入一个元素
- twitter-bootstrap – Bootstrap无线电内联线路包装和堆叠单
- angular指令实例及总结
- 3.2Bootstrap学习组件篇之按钮组