0

I am studying some JARs in the Maven Repository and discovered this:

  • Hibernate Validator Engine 5.4.0.FINAL lists jboss-logging as a compile dependency, and jboss-logging-processor as a provided dependency
  • jboss-logging-processor lists jboss-logging as a provided dependency

In general, when a JAR is mentioned multiple times along the way under different scopes, what is the final, actual scope? Is there an order of precedence of sorts?

thegreatjedi
  • 2,788
  • 4
  • 28
  • 49

1 Answers1

0

It depends on the context rather than inheritance.

However, if some implications are present:

  • something is marked as compile it is implicitly a runtime dependency.
  • something is marked as runtime it is implicitly a test dependency.
  • provided will be used in both runtime and test though it is not loaded during run or test time.
  • system will be used in both runtime and test
Archimedes Trajano
  • 35,625
  • 19
  • 175
  • 265
  • hmm I still don't get it. So say when I traverse the dependencies, a certain particular JAR is marked as a compile dependency for some and provided dependency for others, as an example, how do I determine what it is at the end? – thegreatjedi Feb 13 '17 at 18:48