Пользовательская конфигурация sr c jar заканчивается в папке jars вместо srcs при использовании sbt publishLocal - PullRequest
1 голос
/ 18 января 2020

Мой файл sbt имеет добавленную пользовательскую конфигурацию под названием «dev». Я хочу, чтобы исходники из конфигурации dev заканчивались так же, как исходники из конфигурации Compile, т. Е. В папке srcs ivy local cahce при использовании sbt publishLocal. Что-то не так с авторизацией файла sbt ниже?

lazy val Dev = config("dev") extend(Compile) describedAs("Dependencies required for development environments")
lazy val dpframework = project
  .in(file("datapipeline-framework"))
  .configs(Dev,Compile,Test)
  .settings(
    name := "datapipeline-framework",
    settings,
    inConfig(Dev)(Defaults.compileSettings),
    addArtifact(artifact in (Dev, packageBin), packageBin in Dev),
    addArtifact(artifact in (Dev, packageDoc), packageDoc in Dev),
    addArtifact(artifact in (Dev, packageSrc), packageSrc in Dev),
    ivyConfigurations := overrideConfigs(Dev, Test, Compile)(ivyConfigurations.value),
    defaultConfiguration := Some(Compile),
    libraryDependencies ++= commonDependencies,
    dependencyOverrides ++= commonDependencyOverrides,
    publishArtifact in Dev := true,
    (dependencyClasspath in Test) := (dependencyClasspath in Test).value ++ Seq(Attributed.blank((classDirectory in Dev).value))
  )

1 Ответ

1 голос
/ 27 января 2020

Кажется, проблема в том, что Dev / packageSrc / artifact имеет неправильный тип Артефакта, поэтому вы можете исправить это следующим образом:

Dev / packageSrc / artifact ~= { _.withType("src") },

Вот полный пример:

ThisBuild / scalaVersion     := "2.12.10"
ThisBuild / version          := "0.1.0-SNAPSHOT"
ThisBuild / organization     := "com.example"
ThisBuild / organizationName := "example"

lazy val Dev = config("dev").extend(Compile)
  .describedAs("Dependencies required for development environments")

lazy val root = (project in file("."))
  .configs(Dev)
  .settings(
    name := "datapipeline-framework",
    inConfig(Dev)(Defaults.compileSettings),
    addArtifact(Dev / packageBin / artifact, Dev / packageBin),
    addArtifact(Dev / packageDoc / artifact, Dev / packageDoc),
    Dev / packageDoc / artifact ~= { _.withType("doc") },
    addArtifact(Dev / packageSrc / artifact, Dev / packageSrc),
    Dev / packageSrc / artifact ~= { _.withType("src") },
    Dev / publishArtifact := true,
    Test / dependencyClasspath ++= Seq(Attributed.blank((Test / classDirectory).value))
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...