为键/设置设置新值(如果sbt构建中存在)?
是否可以检查某个键是否存在,并且仅在生成中存在该键时为该键定义一个新值 用例是我们团队中的eclipse用户使用(作为本地插件安装),而非eclipse用户不安装插件。一旦我在构建脚本中定义了特定于sbteclipse的键,对于非eclipse用户,它就会中断 所需的定义是:为键/设置设置新值(如果sbt构建中存在)?,sbt,sbteclipse,Sbt,Sbteclipse,是否可以检查某个键是否存在,并且仅在生成中存在该键时为该键定义一个新值 用例是我们团队中的eclipse用户使用(作为本地插件安装),而非eclipse用户不安装插件。一旦我在构建脚本中定义了特定于sbteclipse的键,对于非eclipse用户,它就会中断 所需的定义是: EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource 此定义属于生成脚本(而不是由单个用户定义),因为生成类路径是生成
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
此定义属于生成脚本(而不是由单个用户定义),因为生成类路径是生成/项目的属性。您可以使用
?
查看定义该设置时是否存在设置的先前值
这里真正的问题是,您需要Eclipse插件中的类型,这意味着如果它不在类路径上,您根本不能引用.createSrc
键,因为Scala会在插件的任何导入中阻塞
您目前有两种选择:
object MyCompanyPlugin extends AutoPlugin {
override def requires: Plugins = EclipsePlugin
override def trigger = allRequirements
override def projectSettings = Seq(
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
)
}
然后,让您的Eclipse用户依赖这个“公司”插件,它将自动使用您想要的设置“增强”现有的sbteclipse插件谢谢你的回答。我可能只是将sbteclipse添加到项目本身。sbt在这方面有更多的灵活性是很好的,但我知道sbt脚本或多或少是一个Scala程序,必须是类型安全的才能编译。如果没有更好的答案,我就把赏金给你。