我将带有 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
。我试图以任何方式删除它 - 没有任何变化。