2017-07-15 2 views
-1

meine build.sbt Dateimeine FAT Jar zu Repo lokalen 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.**" -> "[email protected]").inAll 
    ), 
    artifact in (Compile, assembly) := { 
     val art = (artifact in (Compile, assembly)).value 
     art.copy(`classifier` = Some("assembly")) 
    }, 
    addArtifact(artifact in (Compile, assembly), assembly) 
) 

I veröffentlicht lokal

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" 
) 
build.sbt

sbt publish-local

Jetzt mit Publishing ist I verwiesen dies ein weiteres Projekt Dies ist das

Aber ich bekomme einen Fehler

[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 
+0

Gemäß den Namenskonventionen von Maven sollte artifactId in Kleinbuchstaben sein. Haben Sie versucht, 'artifactName' zu ​​verwenden, das sich von' name' unterscheidet (http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Artifacts.html), oder machen Sie "name" mit einem niedrigeren Namen? – red1ynx

Antwort

2

Ihr Fehler hat nichts damit zu tun, FAT jar in Ihrem lokalen Repository zu veröffentlichen!

Ich glaube, der Fehler ziemlich beschreibend ist selbst:

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'; 

Besonders: expected='Slick3Test2_2.11' found='slick3test2_2.11';

Dass gesagt wird, sollten Sie Ihre Abhängigkeit aussehen wahrscheinlich wie:

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

Wenn Sie nicht sind Sicher, was ist das artifactID Ihrer Bibliothek, können Sie es immer auf eigene Faust überprüfen, um:

${user.home}/.ivy2/local 

Denken Sie auch daran, dass local Repository Vorrang vor cache hat und was mehr ist, wenn einige Bibliotheks-Version Sie local Cache gefunden wird, wird es nicht von externen Servern abgerufen werden.

Verwandte Themen