首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SBT:编译和包-“工作树不干净”

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

Stack Overflow用户
提问于 2019-01-30 00:29:00
回答 1查看 235关注 0票数 7

我正在为NetLogo (存储库)开发一个Scala扩展。我同时遵循扩展API 示例和NetLogos 样本-Scala扩展

我看到:

代码语言:javascript
复制
[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不包含我对扩展所做的修改。我认为这与“警告工作树不干净”有关。

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

文件层次结构:

代码语言:javascript
复制
Scala-Plume-Model
  build.sbt
  src 
    PlumeModelExtension.scala       

build.sbt

代码语言:javascript
复制
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"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-30 18:00:01

简单的回答是:将isSnapshot := true添加到build.sbt中,然后不管git的当前状态如何,package sbt任务都应该开始创建输出jar和zip文件。

更长的答案: NetLogo扩展SBT插件对何时进行打包有一定的期望。如果isSnapshotfalse或unset,则插件假定您正在尝试执行“生产”版本。但是对于生产发行版,您可能不希望从脏存储库中编译和打包。因此,它警告您,而不创建工件。

通常的工作流程是在开发过程中保持isSnapshot := true,然后在完成所有提交并准备发布后,添加一个提交来设置isSnapshot := false (可能还有扩展的版本凸起),打包并标记发行版,然后立即添加提交设置isSnapshot := true

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54431677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档