Wie man Maven konfiguriert, um zwei Versionen eines Artefakts zu erstellen, jedes für eine andere Ziel-JRE

8

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%     
Alex Oliveira 06.06.2012, 18:39
quelle

3 Antworten

5

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%     
wjans 06.06.2012, 18:42
quelle
3

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.

%Vor%     
user2623688 26.07.2013 17:33
quelle
1

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.

    
haylem 07.06.2012 09:58
quelle

Tags und Links