Attention, Java 6 n'étant plus supportée les dépendances kotlin-stdlib-jdk7 et kotlin-stdlib-jdk8 n'existent plus (puisque c'est Java 8 la version minimale requise pour Kotlin à présent).
Il faut donc les remplacer par kotlin-stdlib. Une migration simple qui va poser de nombreux problèmes à certains, sans aucun doute.
Je suis en train d'analyser le partie front du projet d'un client et j'ai le sentiment qu'une tripotée de dépendances y est tirée alors qu'elles ne sont pas utilisées. depcheck
est un utilitaire qui lit votre package.json
puis parcours votre code afin de déterminer si les dépendances déclarées sont bel et bien utilisées, sinon c'est que vous pouvez les mettre à la poubelle.
Pour obtenir un rapport HTML détaillant quels JAR sont utilisés, inutilisés ou en conflits il faut utiliser la commande :
mvn dependency:analyze-report
Pour un rapport directement dans la console c'est par ici.
Merci à @Philou pour l'astuce.
Les secrets des dépendances en JS.
Trouver quels jars sont en conflits dans votre build Maven en une ligne : mvn dependency:tree -Dverbose
Afin de renforcer vos build Maven et garantir que vos 'pom.xml' ne tirent pas de dépendances inutiles vous pouvez configurer votre maven-dependency-plugin
avec l'exécution suivante :
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>analyze</id>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>true</failOnWarning>
<outputXML>true</outputXML>
</configuration>
</execution>
</executions>
</plugin>
Je me note la dépendance :
<dependency>
<groupId>com.oracle.substratevm</groupId>
<artifactId>svm</artifactId>
<version>1.0.0-rc8</version>
<scope>provided</scope>
</dependency>
Il faudra que je fasse un poc à ce sujet.
Vous travaillez avec Maven depuis une connexion de merde. Ce dernier tente de télécharger 5 ou 6 artifacts de plusieurs méga en parallèle alors que votre vitesse de connexion n'excède pas les 16 Ko / sec (saloperie de H+ Free Mobile... Je dis ça, je ne dis rien mais on dirait du Edge). Bref, il serait plus rentable pour vous de télécharger les artifacts l'un après l'autre, d'autant que si votre connexion plante, vous avez plus de change de posséder un artifact en version complète dans votre répo local. Du coup voici la commande magique à fournir à Maven pour le forcer à s'exécuter en mode mono-thread et donc "no parallel downloads" :
mvn -Dmaven.artifact.threads=1 clean install