web-dev-qa-db-fra.com

module non trouvé: org.scala-sbt # sbt; 1.1.6

J'ai installé SBT via un terminal avec les commandes suivantes:

echo "deb https://dl.bintray.com/sbt/debian /" | Sudo tee -a /etc/apt/sources.list.d/sbt.list
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
Sudo apt-get update
Sudo apt-get install sbt

sur mon Ubuntu 18.04 et avec la version Java:

openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.18.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)  

L’installation a réussi, mais lorsque j’ai essayé de démarrer SBT via un terminal, j’ai 

https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/sbt/1.1.6/ivys/ivy.xml

        ::::::::::::::::::::::::::::::::::::::::::::::

        ::          UNRESOLVED DEPENDENCIES         ::

        ::::::::::::::::::::::::::::::::::::::::::::::

        :: org.scala-sbt#sbt;1.1.6: not found

        ::::::::::::::::::::::::::::::::::::::::::::::


:::: ERRORS
    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.1.6/sbt-1.1.6.pom

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.1.6/sbt-1.1.6.jar

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt/1.1.6/sbt-1.1.6.pom

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt/1.1.6/sbt-1.1.6.jar

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo.scala-sbt.org/scalasbt/maven-snapshots/org/scala-sbt/sbt/1.1.6/sbt-1.1.6.pom

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo.scala-sbt.org/scalasbt/maven-snapshots/org/scala-sbt/sbt/1.1.6/sbt-1.1.6.jar

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/1.1.6/ivys/ivy.xml

    Server access Error: Java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.scala-sbt/sbt/1.1.6/ivys/ivy.xml

Qu'est-ce qui ne va pas? 

Mettre à jour 

developer@monad:~$ Sudo apt-get purge openjdk-8-jdk Java-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 openjdk-11-jre-headless : Depends: ca-certificates-Java but it is not going to be installed
                           Depends: Java-common (>= 0.28) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Liste de la version Java installée:

developer@monad:~$ update-Java-alternatives --list
Java-1.11.0-openjdk-AMD64      1101       /usr/lib/jvm/Java-1.11.0-openjdk-AMD64
Java-1.8.0-openjdk-AMD64       1081       /usr/lib/jvm/Java-1.8.0-openjdk-AMD64

Mise à jour 2 

Sudo apt-get install ca-certificates-Java
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ca-certificates-Java is already the newest version (20170930ubuntu1).
ca-certificates-Java set to manually installed.
The following packages were automatically installed and are no longer required:
  libice-dev libsm-dev libxt-dev
Use 'Sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
5
zero_coding

La cause première est un conflit entre openjdk-11-jdk (qui est la valeur par défaut dans Ubuntu 18.04) et les paramètres des packages sbt. Il a déjà été corrigé dans Debian et sera prochainement inclus dans Ubuntu. En attendant, la solution la plus simple consiste à rétrograder Java en version 8. Les autres solutions utilisant ca-certificates-Java sont beaucoup plus compliquées.

Commencez par supprimer les paquets en conflit:

Sudo apt-get remove --purge openjdk* Java-common default-jdk
Sudo apt-get remove --purge sbt
Sudo apt-get autoremove --purge

Vérifiez que vous avez bien supprimé tous les paquets associés en:

Sudo update-alternatives --config Java

Le système vous demandera il n'y a pas de Java disponible pour configurer , sinon cette solution de contournement échoue .

Puis réinstallez les paquets requis:

Sudo apt-get install openjdk-8-jdk sbt

Testez par:

sbt compile
8
shvahabi

Le problème est Java-certificates donc vous devez exécuter ces commandes:

Réinstallez JDK

$ Sudo apt-get purge openjdk-8-jdk Java-common
$ Sudo apt-get install openjdk-8-jdk

Exécuter sbt

$ sbt
2
metmirr

Cela a résolu le problème pour moi.

Sudo update-ca-certificates -f
0
Rakesh

Je vous recommanderais d'installer Java/Scala/SBT de manière totalement indépendante des packages de système d'exploitation. Peu importe (ou ne devrait pas l'être!) Pour un développeur quelle version spécifique de Java a été installée par apt-get, yum ou autre. 

Du point de vue du développeur, il peut même être judicieux de tester votre application sous plusieurs versions de Java. J'ai déjà vu cette situation auparavant: "ça marche" sous Java 1.8.x mais "ça échoue" sous Java 1.8.y.

Ainsi, du point de vue des développeurs, vous seriez intéressé par les versions rapides de Java, afin de vous assurer rapidement que tout fonctionne correctement sous ces différentes versions, quelle que soit la version spécifique installée sur votre version du système d'exploitation.

Si vous avez aimé l'idée, voici comment cela fonctionne:

  1. Téléchargez manuellement toutes les versions de JDK que vous aimez et décompressez-les dans un dossier donné de votre dossier personnel, par exemple: $HOME/tools. J'ai un script qui installe automatiquement une certaine version du JDK pour vous: https://github.com/frgomes/bash-scripts/blob/master/scripts/user-install/install-Java.sh
  2. Ajustez les variables d’environnement de la même manière que virtualenv-. C'est plus facile que vous ne le pensez et vous n'avez même pas besoin de virtualenv. Tout ce dont vous avez besoin est de source un script Shell qui s'exécute au moment de la connexion et qui définit Java_HOME, pointant vers une version donnée de Java, sous votre $HOME/tools. Voici un exemple: https://github.com/frgomes/bash-scripts/blob/master/bashrc-virtualenvs/j8s12/bin/postactivate
  3. Installez les versions Scala et SBT manuellement ou utilisez mon script automatisé à l’adresse https://github.com/frgomes/bash-scripts/blob/master/scripts/user-install/install-scala.sh
0
Richard Gomes

Dans mon cas, je l'ai résolu en supprimant .m2, .ivy & .sbt. La prochaine fois que j'ai exécuté sbt, tout a été corrigé.

Je crois que je me suis cassé la question quand je jouais avec les dépendances en cache ou quelque chose d'autre.

0
Franzi