Announcement

Collapse
No announcement yet.

Maven2 in Web-Anwendung mit JBoss

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Maven2 in Web-Anwendung mit JBoss

    Hallo zusammen,

    hab eine (eher grundsätzliche) Frage zu Maven2. Und zwar entwickle ich mit Eclipse Java EE Applikationen (mit JBoss). Nun hat meine Applikation einige Abhängigkeiten, wie z.B. Spring, die (logischerweise) nicht im Umfang von JBoss sind. Andere Abhängigkeiten sind aber drin (z.B. Hibernate).

    Ich verwende ausserdem das Maven2-Integration-Plugin, dass die von Maven heruntergeladenen Libs automatisch darstellt.

    Nun meine Frage; soll ich in der pom.xml ALLE Abhängigkeiten meiner Applikation definieren, so dass die Libs von JBoss nicht mehr gebraucht werden, oder nur die, die JBoss nicht schon drin hat? Auf das obige Bsp bezogen wäre die Frage also: in der pom.xml Spring und Hibernate rein, oder nur Spring?

    Hintergrund ist der, dass dann ja die Libs teilweise doppelt sind; nämlich einmal die JBoss-Libs, die Eclipse automatisch einhängt, sowie die von Maven heruntergeladene.

    Vielen Dank für eure Antworten, Grüße Niko

  • #2
    Hallo,

    also ich muß erst einmal sagen ich habe keine Ahnung von Maven und nutze auch nicht Eclipse, aber grundsätzlich würde ich sagen kommt es bei der Definition der Abhängigkeiten darauf an in wie weit du dich an JBoss fesseln willst. Willst du eine Installation von JBoss vorraussetzen (oder ist dies so in deinem Projekt so definiert), dann reicht es sicherlich die fehlenden Libs in der Konfiguration zu vermerken. Solltes du diesen Punkt flexibler gestalten wollen, ist es wohl ratsam alles erst einmal zu definieren.

    Ganz unabhängig davon kann es aber passieren, das wenn Libs in JBoss doppelt vorhanden sind eine „InvalidInvocationExceptions" geworfen wird (abhängig von der JBoss Version??). Dies kannst du dann evtl. über deine Projektkonfiguration in Eclipse lösen. Für die Entwicklung nur Spring, für die fertige Version evtl. alles.

    mfg

    PS: Wenn ich hier quatsch erzähle, so möge man mich berichtigen

    Comment


    • #3
      Hi!

      Wenn Du die JBoss-Libraries zum kompilieren und/oder testen brauchst, dann musst Du sie im POM definieren, zumindest, wenn Du diese Arbeitsschritte mit Maven erledigen willst. Falls nein: Wozu dann überhaupt maven?. Grund: Mavens Classloader "sieht" nur die Klassen, die auch über Dependencies im POM definiert sind.

      Ich würde wie folgt vorgehen: Alle Dependencies im POM definieren (auch die JBoss-Libraries gibt es über central), Eclipse-Projektdateien mit dem Eclipse-Plugin erstellen und Projekt in Eclipse importieren. Über Eclipse selbst solltest Du keine Dependecies hinzufügen, weil diese dann nicht von Maven gemanaged werden können.

      Bei der Paketierung der Anwendung kommt es dann einerseits auf die Konfiguration des zuständigen Maven Plugins an, andererseits auch auf den Scope der Dependency. "provided" Depdencies müssen im Container vorinstalliert sein, "compile" Depdencies werden paketiert und "test" Dependencies werden nur bei der Ausführung der Unit-Tests vom Classloader zur Verfügung gestellt (und natürlich auch nicht paketiert).

      Gruß
      Hendrik

      Comment

      Working...
      X