首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行sbt清理程序集时,sbt清理程序集出错

执行sbt清理程序集时,sbt清理程序集出错
EN

Stack Overflow用户
提问于 2021-10-19 08:37:42
回答 1查看 61关注 0票数 0

在sbt shell中我得到了

代码语言:javascript
复制
sbt clean assembly
[error] Expected ';'
[error] sbt clean assembly
[error]                   ^

^代表的是什么?如何定义预期;的位置

我们的build.sbt

代码语言:javascript
复制
import Settings.{assemblySettings, baseImageDockerSettings, commonSettings, finalDockerSettings, environmentArtifactSettings}
import com.typesafe.sbt.SbtGit.GitKeys.gitCurrentBranch
import sbt.{Def, project}
import complete.DefaultParsers._
import sbt.complete._
import sbtrelease.ReleaseStateTransformations.{inquireVersions, setReleaseVersion}
import sbtrelease.{Version, versionFormatError}

version := sparkAppsIndustryVersionSetting.value

lazy val sparkAppsIndustryVersionSetting = Def.setting{
    s"${if (releaseUseGlobalVersion.value) (version in ThisBuild).value else version.value}"
}

releaseVersion := {
    ver => Version(ver).map(_.bump(releaseVersionBump.value).withoutQualifier.string).getOrElse(versionFormatError(ver))
}

releaseProcess := Seq[ReleaseStep](
    inquireVersions,
    setReleaseVersion
)

val minor: Parser[String] = " minor"
val major : Parser[String] = " major"
val combinedParser: Parser[String] = minor | major

//sbt 'bumpVersion minor'
val bumpVersion = inputKey[Unit]("Bumps a version of the bigdata project.")
bumpVersion := {
    val bumpMode = combinedParser.parsed.trim match {
        case "minor" => sbtrelease.Version.Bump.Minor
        case "major" => sbtrelease.Version.Bump.Major
    }
    require(gitCurrentBranch.value.contains("stage") || gitCurrentBranch.value.contains("master"),
        "A version can bumped in the 'master' or 'stage' branches only.")
    val extracted = Project.extract(state.value)
    val newState = extracted.appendWithSession(Seq(releaseVersionBump := bumpMode), state.value)
    Command.process("release with-defaults", newState)
}

//Prints current bigdata project version (sbt printVersion | tail -n 2 | head -1)
lazy val printVersion = taskKey[Unit]("Prints current project version.")
printVersion := println(sparkAppsIndustryVersionSetting.value)


lazy val industry = (project in file("."))
  .enablePlugins(sbtdocker.DockerPlugin)
  .enablePlugins(AshScriptPlugin)
  //  .enablePlugins(HelmPlugin)
  .settings(
    name := "industry",
    commonSettings,
    assemblySettings,
    environmentArtifactSettings,
    libraryDependencies ++= Seq(
      "companyname" %% "deps" % "0.1",
      "companyname" %% "core" % "0.1"
    ),
    baseImageDockerSettings,
    finalDockerSettings("core", "0.1"),
    Compile / mainClass := Some("io.companyname.industry.batch.DailySummariesJob"),
    addArtifact(Compile / assembly / artifact, assembly)
  )

我们的plugins.sbt

代码语言:javascript
复制
// Deploy fat JARs. Restart processes: https://github.com/sbt/sbt-assembly
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")

// sbt plugin for dockerization: https://github.com/sbt/sbt-native-packager
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.24")

// sbt plugin to build Docker Images: https://github.com/marcuslonnberg/sbt-docker
addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.8.2")

// sbt plugin for release management
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.12")

// sbt plugin for git routines
addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.0")

// sbt plugin for publishing jars to gitlab
addSbtPlugin("com.gilcloud" % "sbt-gitlab" % "0.0.6")

如果我按照Jarrod的建议在sbt shell中执行clean assembly,我可以很好地执行comand,但最终还是会得到错误:

代码语言:javascript
复制
[info] Loading global plugins from C:\Users\eljah32\.sbt\1.0\plugins
[info] Loading settings for project industry-dev-build from plugins.sbt,idea8.sbt ...
[info] Loading project definition from D:\Java\companyname\industry-dev\project
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Compiling 5 Scala sources to D:\Java\companyname\industry-dev\project\target\scala-2.12\sbt-1.0\classes ...
[info] Done compiling.
[info] Loading settings for project industry from build.sbt ...
[info] Set current project to industry (in build file:/D:/Java/companyname/industry-dev/)
[info] Defining Global / ideaPort
[info] The new value will be used by Compile / compile, Test / compile
[info] Reapplying settings...
[info] Set current project to industry (in build file:/D:/Java/companyname/industry-dev/)
[IJ]sbt:industry> clean assembly
[error] Expected ';'
[error] clean assembly
[error]               ^
[IJ]sbt:industry>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-19 12:12:41

在使用SBT shell时,不需要在命令前键入sbt。如果您是在命令行上使用sbt clean assembly,那么在shell中使用clean assembly就足够了。

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

https://stackoverflow.com/questions/69627585

复制
相关文章

相似问题

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