2016-06-26 13 views
0

Ich baue ein Projekt mit Maven und ich muss sicherstellen, dass es über Java SE und verschiedene Java EE Container funktioniert. Es gibt bereits Integrationstests für den WildFly-Container. Und jetzt ziehe ich zu Java SE um.Wie behandelt man mehrere Testumgebungen in Maven?

Aber Gesicht zu dieser multiplen Testumgebungen, wie sollte ich sie in maven behandeln? Sollte ich <profile>, <module> oder etwas anderes verwenden?

  • <profile> nützlich ist, zwischen verschiedenen Profilen und jeder von ihnen zu wechseln ihre spezifischen Abhängigkeiten. Also in meinem Fall könnte es Profile geben: wildfly-embedded, wildfly-managed, java-se usw. Aber ich muss sicherstellen, dass das Projekt auf jedem Profil funktioniert, ist es möglich, alle Profile in einem Befehl auszuführen?

  • <module> kann Projektvererbung verarbeiten. Nach dem Lesen der Post SO • Why and when to create a multi-module Maven project?, bin ich immer noch verwirrt darüber, ob ich es in meinem Fall verwenden sollte.

Kann mir jemand ein paar Ideen geben? Das wird sehr hilfreich sein, danke.

Antwort

1

Wenn Sie daran denken, dass das resultierende Artefakt immer gleich sein sollte, unabhängig von den aktivierten Profilen, dann sollten Sie verstehen, dass das Profil nicht die richtige Lösung ist (obwohl es oft dafür missbraucht wird. Versuchen Sie nicht gehen Sie für diesen Rat!) Konfiguration sollte außerhalb des Artefakts sein, so dass Sie das gleiche Artefakt immer und immer wieder verwenden können. Da viele Leute nach der richtigen Lösung mit eingebetteter Konfiguration fragen, hat Karl Heinz https://github.com/khmarbaise/multienv-maven-plugin erstellt. Dies ist wahrscheinlich am ehesten einer gültigen Maven-Projekteinrichtung zuzuordnen.

+0

Vielen Dank für Ihren Rat, @RobertScholte. Ich stimme dir mit dem Profil zu und deshalb werde ich es vermeiden. Was das Karl-Heinz-Projekt angeht, ist dies ein interessantes Plugin, aber ich suche etwas Natives ohne zusätzliche "Abhängigkeit". –

+0

Was meinst du mit zusätzlicher "Abhängigkeit"? – khmarbaise

+0

Ich denke, es geht um angehängte/klassifizierte Artefakte. In diesem Fall musst du Maven nur das Gebäudeteil überlassen. Lassen Sie den Prozess, der die Tests durchführt (z. B. Jenkins), dafür verantwortlich sein, die richtige Konfiguration einzubetten. –

Verwandte Themen