2015-04-09 18 views
17

Il primo progetto è un progetto SBT. Il comando "publish-local" pubblica solo i jar sul repository .ivy locale. Ma un altro progetto è un progetto maven. Voglio SBT "publish-local" nel repository di Maven. Quindi un altro progetto può farvi riferimento dal repository .m2. Non so come fare?Come utilizzare il comando "publish-local" di SBT su Maven Repo?

Qui è build.sbt:

organization := "org.scalanlp" 

name := "breeze-parent" 

lazy val root = project.in(file(".")) 
.aggregate(math, natives, viz, macros).dependsOn(math, viz) 

lazy val macros = project.in(file("macros")) 

lazy val math = project.in(file("math")).dependsOn(macros) 

lazy val natives = project.in(file("natives")).dependsOn(math) 

lazy val viz = project.in(file("viz")).dependsOn(math) 

lazy val benchmark = project.in(file("benchmark")).dependsOn(math, natives) 

scalaVersion := Common.scalaVersion 

crossScalaVersions := Common.crossScalaVersions 

addCompilerPlugin("org.scalamacros" %% "paradise" % "2.0.1" cross CrossVersion.full) 

publishMavenStyle := true 

publishTo <<= version { (v: String) => 
    val nexus = "https://oss.sonatype.org/" 
    if (v.trim.endsWith("SNAPSHOT")) 
    Some("snapshots" at nexus + "content/repositories/snapshots") 
    else 
    Some("releases" at nexus + "service/local/staging/deploy/maven2") 
} 

publishArtifact in Test := false 

pomIncludeRepository := { _ => false } 

pomExtra := (
    <url>http://scalanlp.org/</url> 
    <licenses> 
    <license> 
     <name>Apache 2</name> 
     <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> 
     <distribution>repo</distribution> 
    </license> 
    </licenses> 
    <scm> 
    <url>[email protected]:scalanlp/breeze.git</url> 
    <connection>scm:git:[email protected]:scalanlp/breeze.git</connection> 
    </scm> 
    <developers> 
    <developer> 
     <id>dlwh</id> 
     <name>David Hall</name> 
     <url>http://www.dlwh.org/</url> 
    </developer> 
    </developers>) 
+0

È possibile controllare l'attività "publishM2"? La sua documentazione dice "Pubblica reperti nel repository Maven locale" –

+0

@AjayPadala Sì, penso che sia la risposta. Ci sono casi in cui è meglio rispondere in un commento? Sto ancora imparando l'etichetta di StackOverflow, ma sono abbastanza sicuro che sia scortese rispondere con la stessa risposta dopo averlo fornito in forma di commento. –

+0

Non ne sono sicuro, sono abbastanza nuovo da questo. cambiato in risposta :) –

risposta

35

Si prega di utilizzare l'attività 'publishM2'. La sua documentazione dice "Pubblica manufatti nel repository Maven locale".