The first project is a SBT project. Command "publish-local" only publishes jars to local .ivy repository. But, another project is a maven project. I want SBT "publish-local" to maven repository. So another project can reference them from .m2 repository. I don't know how to do?
Here is 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>)
To use publishing, you need to specify the repository to publish to and the credentials to use. Once these are set up, you can run publish . The publishLocal action is used to publish your project to your Ivy local file repository, which is usually located at $HOME/. ivy2/local/ .
1) Maven Local Repository By default, maven local repository is %USER_HOME%/. m2 directory. For example: C:\Users\SSS IT\. m2.
Please use the publishM2
task. Its documentation says "Publishes artifacts to the local Maven repository".
sbt publishM2
Here is the docs that says publishM2
as per Ajay answer:
The publishLocal task will publish to the “local” Ivy repository ...
Similar to publishLocal, publishM2 task will publish the user’s Maven local repository. This is at the location specified by $HOME/.m2/settings.xml or at $HOME/.m2/repository/ by default. Another build would require Resolver.mavenLocal to resolve out of it:
resolvers += Resolver.mavenLocal
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With