2017-02-13 4 views
0

J'étudie certains fichiers JAR dans le référentiel Maven et découvert ceci:Quelle est la portée de dépendance finale lorsque des étendues différentes sont spécifiées pour un fichier JAR?

  • liste Hibernate Validator Engine 5.4.0.FINAL jboss-logging en tant que dépendance de compilation et jboss-logging-processeur en tant que dépendance fourni
  • jboss-logging-processeur présente les jboss-diagraphie en tant que dépendance fourni

En général, quand un fichier JAR est mentionné plusieurs fois le long du chemin sous différents champs d'application, ce qui est la dernière, la portée réelle? Y a-t-il un ordre de préséance de toutes sortes?

Répondre

0

Cela dépend du contexte plutôt que de l'héritage.

Cependant, si certaines implications sont présents:

  • quelque chose est marqué comme compile il est implicitement une dépendance runtime. Quelque chose est marqué comme runtime est implicitement une dépendance test.
  • provided sera utilisé à la fois dans runtime et test bien qu'il ne soit pas chargé pendant l'exécution ou le temps de test.
  • system seront utilisés dans les deux runtime et test
+0

hmm Je ne comprends toujours pas. Ainsi, quand je traverse les dépendances, un certain JAR particulier est marqué comme une dépendance de compilation pour certains et fournit une dépendance pour d'autres, à titre d'exemple, comment puis-je déterminer ce qu'il est à la fin? – thegreatjedi