Warn sur import d’un projet SBT dans IntelliJ

75 views
Skip to first unread message

hervé DARRITCHON

unread,
May 28, 2015, 7:20:26 AM5/28/15
to scal...@googlegroups.com
Bonjour,

Quand j'importe mon projet Scala (SBT) dans IntelliJ, j'ai un message d'avertissement.

10:12:14 Platform and Plugin Updates: The following plugin is ready to update: Scala
13:12:05 SBT project import
         [warn] Multiple dependencies with the same organization/name but different versions. To avoid conflict, pick one version:
         [warn]  * org.scala-lang:scala-reflect:(2.11.1, 2.11.2, 2.11.6)
         [warn]  * org.scala-lang.modules:scala-xml_2.11:(1.0.4, 1.0.3)

Mon projet est sous Github (branche try1) :

Pour m'entrainer sur Scala, je fais des Katas et c'est un Kata.

Ca ne me bloque pas mais j'aimerais comprendre pourquoi j'ai ce warning et comment le corriger.

Peut être que cela vient d'IntelliJ et que je ne devrais pas y faire attention.

Merci d'avance.

Hervé

hervé DARRITCHON

unread,
May 28, 2015, 8:19:21 AM5/28/15
to scal...@googlegroups.com
En cherchant sur le net, j'ai trouvé des infos.

Apparemment, cela est apparu avec la 0.13.8 de sbt.
Solution downgrade vers la 0.13.7

Je ne sais pas si c'est vraiment la solution ?
Peut être que ce message de Warning a réellement du sens que les versions précédentes de sbt étaient trop permissives.

En tout cas, effectivement, il n'y a plus de message de Warn si on downgrade, par contre je ne suis pas convaincu ;)

Jean Helou

unread,
May 28, 2015, 8:31:57 AM5/28/15
to hervé DARRITCHON, scal...@googlegroups.com
oui le message a du sens, il prévient que la même dépendance est tirée plusieurs fois. par défaut il va en choisir une avec les règles de normalisation d'ivy mais il emet un warning pour dire qu'il y a 2 versions différentes tirées par le projet. 

une solution est de fixer la version a utiliser pour le projet dans tous les cas sur des versions mineures ça ne devrais pas avoir un trop gros impact. 

jean

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Scala France".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse scala-fr+u...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

hervé DARRITCHON

unread,
May 28, 2015, 10:49:10 AM5/28/15
to scal...@googlegroups.com, herve.da...@gmail.com
il faut les fixer dans le build.sbt ?

j'ai essayé de le faire en faisant :

libraryDependencies ++= Seq(
"codes.reactive" %% "scala-time" % "0.3.0-SNAPSHOT",
"org.scalatest" %% "scalatest" % "2.2.4" % "test",
"ch.qos.logback" %% "logback-classic" % "1.1.2",
"com.typesafe.scala-logging" %% "scala-logging" % "3.1.0",
"org.scala-lang" %% "scala-reflect" % "2.11.1",
"org.scala-lang.modules" %% "scala-xml_2.11" % "1.0.2")

Mais sbt ne trouve pas les librairies

Error:Error while importing SBT project:
...
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[error] sbt.ResolveException: unresolved dependency: ch.qos.logback#logback-classic_2.11;1.1.2: not found
[error] unresolved dependency: org.scala-lang#scala-reflect_2.11;2.11.1: not found
[error] unresolved dependency: org.scala-lang.modules#scala-xml_2.11_2.11;1.0.2: not found
[error] Use 'last' for the full log.

j'ai essayé de rajouter des resolvers mais sans succès.
Normalement, ces versions sont disponibles dans Maven Central qui est par défaut dans sbt.

Jean Helou

unread,
May 28, 2015, 10:56:02 AM5/28/15
to hervé DARRITCHON, scal...@googlegroups.com
"org.scala-lang" %% "scala-reflect" % "2.11.1",
"org.scala-lang.modules" %% "scala-xml_2.11" % "1.0.2"
attention au %% ... pour ces 2 dépendances il faut un % simple. 

en gros le %% va te transformer 
"org.scala-lang" %% "scala-reflect" % "2.11.1",
en
"org.scala-lang" % "scala-reflect_2.11" % "2.11.1",
en admettant que tu aies 
scalaVersion := "2.11.1"
dans ton build.sbt

hervé DARRITCHON

unread,
May 28, 2015, 11:29:07 AM5/28/15
to scal...@googlegroups.com, herve.da...@gmail.com
il faut que j'avoue que je n'avais rien compris au double %% et simple %
donc j'avais fait un copier coller de m....

j'ai honte :)
j'ai cru que c'était obligatoire quand tu faisais une Seq au lieu de faire un import dépendance par dépendance 

effectivement, je n'ai plus l'erreur d'import :)
par contre j'ai toujours le Warn de SBT 0.13.8

build.sbt :
name := """scala-berlin-clock-kata"""

version := "1.0"

scalaVersion := "2.11.6"

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

// Change this to another test framework if you prefer
libraryDependencies ++= Seq(
"codes.reactive" %% "scala-time" % "0.3.0-SNAPSHOT",
"org.scalatest" %% "scalatest" % "2.2.4" % "test",
  "ch.qos.logback" % "logback-classic" % "1.1.2",
  "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0",
  "org.scala-lang" % "scala-reflect" % "2.11.1",
"org.scala-lang.modules" %% "scala-xml" % "1.0.2")

build.properties:
#Activator-generated Properties
#Wed May 20 14:00:34 CEST 2015
template.uuid=7faf8e1e-4e8d-4387-8159-642b50383096
sbt.version=0.13.8

Warn :
17:27:15 SBT project import
         [warn] Multiple dependencies with the same organization/name but different versions. To avoid conflict, pick one version:
         [warn]  * org.scala-lang:scala-reflect:(2.11.1, 2.11.2, 2.11.6)
         [warn]  * org.scala-lang.modules:scala-xml_2.11:(1.0.2, 1.0.3)

Jean Helou

unread,
May 28, 2015, 3:35:26 PM5/28/15
to hervé DARRITCHON, scal...@googlegroups.com

2015-05-28 17:29 GMT+02:00 hervé DARRITCHON <herve.da...@gmail.com>:
Multiple dependencies with the same organization/name but different versions

bizarre j'ai pris ton build.sbt et ton build.properties et je n'ai pas ces messages:

jean@byjean ~/dev/sdev/src/perso/berlin-clock $ sbt --version
sbt launcher version 0.13.8
jean@byjean ~/dev/sdev/src/perso/berlin-clock $ sbt
[info] Loading global plugins from /Users/jean/.sbt/0.13/plugins
[info] Updating {file:/Users/jean/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Loading project definition from /Users/jean/dev/sdev/src/perso/berlin-clock/project
[info] Updating {file:/Users/jean/dev/sdev/src/perso/berlin-clock/project/}berlin-clock-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to scala-berlin-clock-kata (in build file:/Users/jean/dev/sdev/src/perso/berlin-clock/)
> update
[info] Updating {file:/Users/jean/dev/sdev/src/perso/berlin-clock/}berlin-clock...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[success] Total time: 3 s, completed 28 mai 2015 21:33:06
>

Tu as des plugins dans ton build ?

jean

Jean Helou

unread,
May 28, 2015, 3:46:24 PM5/28/15
to hervé DARRITCHON, scal...@googlegroups.com
j'ai cloné le repo et lancé avec le même launcher sans warning ... 

j'ai essayé l'import dans intellij et avec un import basique je n'ai pas de probleme
si j'active l'import des source et des documentations l'erreur apparait. 

ça corresponds au problème décrit dans https://groups.google.com/d/topic/sbt-dev/61J8cnQrsxU/discussion

tel que je le comprends c'est bien un bug sans grande gravité (il emet un warning par erreur) dans le mécanisme de résolution des conflits de version et il semble qu'il ne s'active que sur la résolution des "classifiers" (src et docs) pas sur les dépendances réelles. 

bref rien de méchant

hervé DARRITCHON

unread,
May 28, 2015, 4:12:32 PM5/28/15
to scal...@googlegroups.com, herve.da...@gmail.com
ok. Merci je vais attendre la correction du bug et ne pas m'inquiété du message de Warn.
Reply all
Reply to author
Forward
0 new messages