Ich verstehe, dass die bereitgestellten Abhängigkeiten vom Container "bereitgestellt" werden und die Anwendung diese JAR nicht generieren muss.Bereitgestellte Abhängigkeit und JBOSS EAP 7
1) Also, ich benutze JBOSS EAP 7.0.0.GA und dies haben die folgenden jar in diesem Modul-Ordner: Hibernate-Core-5.0.9.Final-redhat-1.jar.
In meinem Projekt ich verwende die folgende Abhängigkeit:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.9.Final-redhat-1</version>
</dependency>
Es funktioniert gut, ohne Fehler. Aber ich verstehe, dass ich den Bereich "PROVIDED" verwenden sollte, da dieses Glas vom Container bereitgestellt wird. Warum funktioniert es?
2) Ich habe ein anderes Beispiel. In Jboss Eap 7.0.0.GA habe ich folgendes jar: jboss-servlet-api_3.1_spec-1.0.0.Final-redhat-1.jar. Aber in meinem Projekt habe ich folgendes:
Es funktioniert gut, aber ich verstehe nicht warum. Für mich sollte die korrekte Abhängigkeit servlet-api_3.1_spec-1.0.0.Final-redhat-1 mit zur Verfügung gestellt werden. Warum funktioniert es auch?
Können Sie mir ein echtes Beispiel geben, um die Situation besser zu verstehen? – RonaldoLanhellas
Also, wenn alle meine Abhängigkeit ohne "bereitgestellten" Bereich arbeiten, warum brauche ich zur Verfügung gestellt? Nur für ein leichtes JAR? – RonaldoLanhellas
Wenn Sie eigene Abhängigkeiten in das JAR einfügen, besteht das Risiko, dass Klassen mit demselben Namen, aber unterschiedlichen Versionen für die Anwendung verfügbar sind. Wenn Sie die Regeln zum Laden von JEE-Klassen nicht detailliert studieren - und der Anwendungsserver respektiert sie dann -, wird es schwierig zu sagen, welche Klasse zur Laufzeit geladen wird. Es geht also nicht nur um eine leichtere JAR, sondern um Konsistenz zur Laufzeit. –