“发布”到本地maven repo只创建了scaladoc罐子?

时间:2014-01-24 12:02:16

标签: sbt

我正在使用sbt 0.13.0和Scala 2.10.3

我想将一个工件发布到我当地的maven repo,所以我将以下内容添加到build.sbt

publishMavenStyle := true

publishTo := Some(Resolver.file("file",  new File(Path.userHome.absolutePath+"/.m2/repository")))

artifactName := { 
  (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
    artifact.name + "-" + module.revision + "." + artifact.extension
}

当我使用publish cmd时,在我家的.m2目录中创建了jar,但是内容相同,意味着它们只包含scaladocs - 只有html,css和js文件。

这是我第二次在这个项目中发布我的工件。上次它完美运作。大多数类都改变了他们的包,这可能是原因,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

删除artifactName,它应该可以正常工作了。

为什么要重新定义它(因为它现在打破了publish)?最初的目标是什么?

[sbt-0-13-1]> about
[info] This is sbt 0.13.1
[info] The current project is {file:/Users/jacek/sandbox/so/sbt-0.13.1/}sbt-0-13-1 0.1-SNAPSHOT
[info] The current project is built against Scala 2.10.3
[info] Available Plugins: com.typesafe.sbt.SbtGit, com.typesafe.sbt.SbtProguard, growl.GrowlingTests, np.Plugin, com.timushev.sbt.updates.UpdatesPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.3
[sbt-0-13-1]> help artifactName
Function that produces the artifact name from its definition.
[sbt-0-13-1]> inspect artifactName
[info] Setting: scala.Function3[sbt.ScalaVersion, sbt.ModuleID, sbt.Artifact, java.lang.String] = <function3>
[info] Description:
[info]  Function that produces the artifact name from its definition.
[info] Provided by:
[info]  */*:artifactName
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:533
[info] Reverse dependencies:
[info]  *:makePom::artifactPath
[info] Delegates:
[info]  *:artifactName
[info]  {.}/*:artifactName
[info]  */*:artifactName
[info] Related:
[info]  */*:artifactName

了解如何在sbt.Artifact中定义默认实现。