Auflösen einer Maven-Abhängigkeit anders, wenn die verwendete JVM x86 oder x64 ist?

8

Ich habe ein Maven-Repository eingerichtet, um einige dlls zu hosten, aber ich brauche meine Maven-Projekte, um verschiedene dlls herunterzuladen, abhängig davon, ob die verwendete JVM x86 oder x64 ist.

Zum Beispiel muss auf einem Computer, auf dem eine x86-Version der JVM ausgeführt wird, ABC.dll als Abhängigkeit vom Repository heruntergeladen werden, aber auf einem anderen Computer, auf dem eine x64-Version der JVM ausgeführt wird, muss XYZ heruntergeladen werden. dll stattdessen.

Wie würde ich das machen? Eine Beispieldatei pom.xml wäre nett.

    
Steve Jobs 17.08.2010, 08:35
quelle

3 Antworten

15

Dies funktioniert auf jeder VM. Sie können Profile verwenden, um je nach Umgebung alternative Konfigurationen zu verwenden.

Ein Profil enthält einen Aktivierungsblock, der beschreibt, wann das Profil aktiviert werden soll, gefolgt von den üblichen pom-Elementen, z. B. Abhängigkeiten:

%Vor%

Da Sie DLLs erwähnt haben, gehe ich davon aus, dass dies nur Windows ist. Vielleicht möchten Sie auch <family>Windows</family> unter den <os> -Tags hinzufügen.

EDIT: Wenn Sie eine 32-Bit-VM auf einem 64-Bit-Betriebssystem mischen, können Sie sehen, welchen Wert die VM der Systemeigenschaft os.arch zuweist, indem Sie das Maven-Ziel

ausführen

mvn help:evaluate

Und dann

eingeben

${os.arch}

Alternativ listet das Ziel help:system alle Systemeigenschaften auf (in keiner bestimmten Reihenfolge).

    
mdma 17.08.2010 08:44
quelle
5

Sie können dies mit Profilen tun. Dies funktioniert nur in Suns JVM.

%Vor%     
Colin Hebert 17.08.2010 08:42
quelle
1

Maven-Profile können hilfreich für Sie sein.

    
Gopi 17.08.2010 08:43
quelle