代码之家  ›  专栏  ›  技术社区  ›  Bruno_Ferreira

跑步时如何避免写pomdocker:publishLocal?

  •  6
  • Bruno_Ferreira  · 技术社区  · 7 年前

    import sbt.Keys._
    import sbt._
    
    val scalaBinaryVersionNumber = "2.12"
    val scalaVersionNumber = s"$scalaBinaryVersionNumber.4"
    
    resolvers += Resolver.bintrayIvyRepo("sbt", "sbt-plugin-releases")
    
    lazy val aggregatedProjects: Seq[ProjectReference] = Seq(core, cli)
    
    lazy val testDependencies = Dependencies.specs2.map(_ % Test)
    
    lazy val root = project
      .in(file("."))
      .settings(name := "root")
      .settings(inThisBuild(List(
        //Credentials for sonatype
        credentials += Credentials(
          "Sonatype Nexus Repository Manager",
          "oss.sonatype.org",
          sys.env.getOrElse("SONATYPE_USER", "username"),
          sys.env.getOrElse("SONATYPE_PASSWORD", "password")),
        scalaVersion := scalaVersionNumber,
        version := "0.1.0-SNAPSHOT",
        organization := "com.test",
        scalacOptions ++= Common.compilerFlags,
        scalacOptions.in(Test) ++= Seq("-Yrangepos"),
        scalacOptions.in(Compile, console) --= Seq("-Ywarn-unused:imports", "-Xfatal-warnings"))))
      .aggregate(aggregatedProjects: _*)
      .settings(publish := {}, publishLocal := {}, publishArtifact := false)
    
    lazy val core = project
      .in(file("core"))
      .settings(name := "core")
      .settings(
        // App Dependencies
        libraryDependencies ++= Seq(
          Dependencies.caseApp,
          Dependencies.betterFiles,
          Dependencies.jodaTime,
          Dependencies.fansi,
          Dependencies.scalajHttp,
          Dependencies.cats) ++
          Dependencies.circe ++
          Dependencies.jackson ++
          Dependencies.log4s
        // Test Dependencies
        libraryDependencies ++= testDependencies)
      .settings(
        // Sonatype repository settings
        publishMavenStyle := true,
        publishArtifact.in(Test) := false,
        //publishArtifact.in(makePom.in(Docker)) := false,
        publish.in(Docker) := {},
        publishLocal.in(Docker) := {},
        pomIncludeRepository := { _ =>
          false
        },
        publishTo := sonatypePublishTo.value)
      .settings(pomExtra := <scm>
        <url>https://github.com/test</url>
        <connection>scm:git:git@github.com:test.git</connection>
        <developerConnection>scm:git:https://github.com/test.git</developerConnection>
      </scm>)
    
    lazy val cli = project
      .in(file("cli"))
      .enablePlugins(JavaAppPackaging)
      .enablePlugins(DockerPlugin)
      .settings(name := "cli")
      .settings(Common.dockerSettings: _*)
      .settings(Common.genericSettings: _*)
      .settings(
        //publish := publish.in(Docker).value,
        //publishLocal := publishLocal.in(Docker).value,
        publishArtifact := false)
      .settings(libraryDependencies ++= testDependencies)
      .dependsOn(core)
      .aggregate(core)
    
    // Scapegoat
    scalaVersion in ThisBuild := scalaVersionNumber
    scalaBinaryVersion in ThisBuild := scalaBinaryVersionNumber
    scapegoatDisabledInspections in ThisBuild := Seq()
    scapegoatVersion in ThisBuild := "1.3.4"
    

    如你所见,我已经试着加上publishArtifact.in(makePom.in.公司(Docker)):=false“到核心设置,但是当我执行core/publishLocal时,这不会写入pom。。。我只想在做cli时避免编写pom/docker:publishLocal。

    0 回复  |  直到 7 年前