【发布时间】:2013-07-13 11:12:15
【问题描述】:
我将带有 sbt 的 jar 发布到本地 ivy repo (${$HOME}/.ivy2)。
然后我以这种方式更改了播放配置文件,该播放开始使用默认的本地常春藤回购(相同的${$HOME}/.ivy2)。但是 play 没有找到我用 sbt 发布的 jar。
我想我知道为什么会这样了。
所有其他下载的依赖都具有类似的结构
ivy_home/cache/group_id/artifact_id/jars/artifact_id-version.jar
e.g. /home/maxim/.ivy2/cache/com.typesafe.akka/akka-actor/jars/akka-actor-2.0.1.jar
但是我用 sbt 发布的 jar 位于
ivy_home/local/group_id/artifact_id/version/jars/artifact_id.jar
e.g. /home/maxim/.ivy2/local/com.mkotolyov.test/server-core/1.1.1-SNAPSHOT/jars/server-core.jar
我用谷歌搜索,但没有找到如何配置 sbt 以使用“默认”结构发布。
我在 Build.scala 中的项目
lazy val core = Project(
"server-core",
file("core"),
settings = buildSettings ++ Seq(
publishTo := Some(myProxyMavenRepo),
publishMavenStyle := true,
publishArtifact in Test := false,
pomIncludeRepository := {
_ => false
},
resolvers := depResolvers,
unmanagedResourceDirectories in Compile <+= baseDirectory( _ / "src" ),
libraryDependencies ++= Seq(
config,
sprayJson,
scalatest,
prettyTime,
casbahCore, casbahCommons, casbahQuery,
mysql, squeryl, postgresql,
quartz
)
)
)
我有标志publishMavenStyle := true,但它只针对普通publish,而不是publish-local。我尝试以任何方式删除它 - 没有任何变化。
【问题讨论】:
-
有趣。我现在在 0.13.0 中遇到了同样的问题,除了 publish-local 正在创建的结构是 ~/.ivy2/local/groupId/artifactId/scalaVersion/sbtVersion/version。 Resolver.defaultLocal 没有为我解决它。
-
呃……没关系。我的问题是,当我应该使用 addSbtPlugin 时,我试图使用 libraryDependencies 引用插件。
标签: playframework-2.0 sbt ivy