繁体   English   中英

将我的FAT Jar发布到本地sbt仓库

[英]Publishing my FAT Jar to local sbt repo

这是我的build.sbt文件

lazy val myproject = (project in file(".")).settings(
   name := "Slick3Test2",
   organization := "com.foo",
   version := "1.2",
   scalaVersion := "2.11.8",
   libraryDependencies ++= Seq(
      "com.typesafe.slick" %% "slick" % "3.2.0"
   ),
   assemblyShadeRules in assembly := Seq(
      ShadeRule.rename("slick.**" -> "shaded.@1").inAll
   ),
   artifact in (Compile, assembly) := {
      val art = (artifact in (Compile, assembly)).value
      art.copy(`classifier` = Some("assembly"))
   },
   addArtifact(artifact in (Compile, assembly), assembly)
)

我使用sbt publish-local在本地sbt publish-local

现在我引用了这是另一个项目build.sbt

name := "Slick2Test"

version := "1.0"

scalaVersion := "2.11.8"

libraryDependencies ++= Seq(
   "mysql" % "mysql-connector-java" % "5.1.36",
   "com.typesafe.slick" % "slick_2.11" % "2.1.0",
   "com.foo" %% "Slick3Test2" % "1.2"
)

但我得到一个错误

[info] Resolving jline#jline;2.12.1 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.foo#Slick3Test2_2.11;1.2: java.text.ParseException: inconsistent module descriptor file found in '/Users/foo/.ivy2/local/com.foo/Slick3Test2_2.11/1.2/ivys/ivy.xml': bad module name: expected='Slick3Test2_2.11' found='slick3test2_2.11';
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]      com.abhi:Slick3Test2_2.11:1.2 (/Users/foo/IdeaProjects/Slick2Test/build.sbt#L7-12)
[warn]        +- default:slick2test_2.11:1.0
[trace] Stack trace suppressed: run 'last *:ssExtractProject' for the full output.
[trace] Stack trace suppressed: run 'last *:update' for the full output.
[error] (*:ssExtractProject) sbt.ResolveException: unresolved dependency: com.foo#Slick3Test2_2.11;1.2: java.text.ParseException: inconsistent module descriptor file found in '/Users/foo/.ivy2/local/com.foo/Slick3Test2_2.11/1.2/ivys/ivy.xml': bad module name: expected='Slick3Test2_2.11' found='slick3test2_2.11';
[error] (*:update) sbt.ResolveException: unresolved dependency: com.foo#Slick3Test2_2.11;1.2: java.text.ParseException: inconsistent module descripto

您的错误与将FAT jar发布到本地存储库无关!

我认为该错误本身具有描述性:

com.foo#Slick3Test2_2.11;1.2: java.text.ParseException: inconsistent module descriptor file found in '/Users/foo/.ivy2/local/com.foo/Slick3Test2_2.11/1.2/ivys/ivy.xml': bad module name: expected='Slick3Test2_2.11' found='slick3test2_2.11';

特别是: expected='Slick3Test2_2.11' found='slick3test2_2.11';

话虽这么说,您的依赖关系可能看起来像:

libraryDependencies ++= Seq(
   ...
   "com.foo" %% "slick3test2" % "1.2"
)

如果不确定您的库的artifactID是什么,可以随时在以下位置自行检查它:

${user.home}/.ivy2/local

还请记住, local存储库的优先级高于cache ,而且,如果在local缓存中找到了某些库版本,则不会从外部服务器中获取它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM