SBT:编译和打包-“工作树不干净”

时间:2019-01-30 00:29:01

标签: scala intellij-idea sbt netlogo

我正在为NetLogo(repo)开发Scala扩展。我同时关注扩展API example和NetLogos Sample-Scala-Extension

我看到了:

[info] Done packaging.
To compare two paths outside a working tree:
usage: git diff [--no-index] <path> <path>
[warn] working tree not clean when packaging; target not created
[success] Total time: 6 s, completed Jan 29, 2019, 6:22:00 PM

生成的.jar不包含我对扩展名所做的修改。我认为这与“ [警告]工作树不干净...”有关。

是这种情况吗? 解决办法是什么?

文件层次结构:

Scala-Plume-Model
  build.sbt
  src 
    PlumeModelExtension.scala       


build.sbt

enablePlugins(org.nlogo.build.NetLogoExtension)

name := "plume-scala"
version := "0.1"
scalaVersion := "2.12.0"

netLogoExtName      := "plume-scala"
netLogoClassManager := "PlumeModelExtension"
netLogoZipSources   := false

scalaSource in Compile := baseDirectory.value / "src"
scalacOptions ++= Seq("-deprecation", "-unchecked", "-Xfatal-warnings", "-encoding", "us-ascii")
netLogoVersion := "6.0.4"

1 个答案:

答案 0 :(得分:7)

简短的答案:将isSnapshot := true添加到build.sbt中,然后package sbt任务应开始创建输出jar和zip文件,而与git的当前状态无关。

更长的答案:NetLogo Extension SBT插件对何时进行打包有一些期望。如果isSnapshotfalse或取消,这个插件假设你正在试图做一个“生产”版本。但是对于生产版本,您可能不想编译并打包一个肮脏的存储库。因此它会警告您并且不会创建工件。

正常的工作流程是在开发过程中保持isSnapshot := true,然后在完成所有提交并准备发布时,添加一个提交来设置isSnapshot := false(也许(带有扩展名的版本凸版),对发布进行打包和标记,然后立即添加提交设置isSnapshot := true