Ich habe ein Maven-Modul, das ich im J2ME-Client und im EJB-Server verwenden muss. Im Client muss ich es für Ziel 1.1 und im Server für Ziel 1.6 kompilieren.
Ich muss auch die Version 1.6 in einem Nexus-Repository bereitstellen, damit die Mitglieder, die an dem Serverprojekt arbeiten, diese Abhängigkeit einschließen können, ohne den Quellcode herunterladen zu müssen.
Ich habe in Ссылка gelesen, dass die Verwendung von Profilen nicht der beste Weg ist, dies zu tun , aber der Autor hat nicht gesagt, was der beste Weg ist.
Hier ist meine pom.xml:
%Vor%Sie können dies über das Maven-Compiler-Plugin konfigurieren.
Sehen Sie sich die Maven-Compiler-Plugin-Dokumentation .
Sie können dies beispielsweise über verschiedene Profile aktivieren.
Wenn Sie nur unterschiedliche Zielversionen haben möchten, können Sie einfach ein variables Ziel verwenden. Etwas wie das:
%Vor%Wie Haylem vorschlägt, müssen Sie es in zwei Schritten tun, einen für die Kompilierung und einen für die Gläser.
Für den Compiler
%Vor%Und dann für das JAR-Plugin
%Vor% Sie können dann auf das erforderliche Jar verweisen, indem Sie Ihrer Abhängigkeit ein <classifier>
-Element hinzufügen. z.B.
Um meinen Kommentar zu wjans Antwort zu ergänzen, wie Sie weitere Details angefordert haben.
Im folgenden Beispiel wird das Compiler-Plugin zweimal ausgeführt, um zwei verschiedene Klassen von Klassen zu erzeugen, die als classifier
bezeichnet werden (im Grunde eine Markierung für Maven, um zu wissen, worauf Sie sich beziehen ein einzelnes Projekt kann mehrere Artefakte erzeugen).
Etwa so etwas wie:
%Vor% Beachten Sie, dass Leute manchmal die Verwendung von classifier
s missbrauchen, während sie profiles
verwenden, da sie möglicherweise bedeuten können, dass Ihr Projekt in mehreren Projekten untersucht wird oder dass Sie die Portabilität Ihres Builds beeinträchtigen.