9
votes

Résoudre une dépendance maven différemment si la JVM utilisée est X86 ou X64?

J'ai un référentiel Maven mis en place pour accueillir certaines DLL, mais j'ai besoin de mes projets Maven pour télécharger différentes DLL selon que la JVM utilisée est X86 ou X64.

Donc, par exemple, sur un ordinateur exécutant une version X86 du JVM, j'ai besoin d'ABC.DLL à télécharger à partir du référentiel comme une dépendance, mais sur un autre ordinateur exécutant une version x64 de la JVM, j'ai besoin de télécharger XYZ. DLL à la place.

Comment allais-je faire cela? Un exemple de fichier pom.xml serait bien.


1 commentaires

Comment allez-vous accéder à ces DLL de Java?


3 Réponses :


5
votes

Vous pouvez le faire avec des profils.Ce ne travaillera que dans JVM de Sun. XXX


0 commentaires

1
votes

Les profils Maven peuvent vous être utiles. < / p>


0 commentaires

15
votes

Cela fonctionnera sur n'importe quel VM. Vous pouvez utiliser pour avoir des configurations alternatives selon l'environnement.

Profil contient un bloc d'activation, qui décrit quand rendre le profil actif, suivi des éléments POM habituels, tels que des dépendances: xxx

comme vous avez mentionné DLLS, Je suppose que cela ne fait que Windows - seulement, vous pouvez également souhaiter ajouter Windows sous les balises

Edit: lors du mélange de VM 32 bits sur un système d'exploitation 64 bits, vous pouvez voir quelle valeur le VM donne à la propriété système os.arch en exécutant l'objectif Maven

MVN Aide: évaluez

puis entrant

$ {os.arch}

Alternativement, l'objectif aide: système répertorie toutes les propriétés du système (sans ordre particulier.)


3 commentaires

Méfiez-vous, cette méthode suppose que vous utilisez une JVM 64bits sur un système 64bits qui n'est pas toujours vrai. La plupart du temps, les gens utilisent 32bits JVM sur leur système 32bits ou non.


Ce n'est pas vrai. Un VM 32 bits retournera X86 pour l'architecture même sur x64. (Si ce n'est pas le cas, cela échouerait, car essayez de charger une DLL 64 bits sous une machine virtuelle de 32 bits échouera.) J'exécute un système d'exploitation 64 bits, mais utilisez souvent un VM 32 bits. Consultez mon édition pour un moyen facile d'inspecter cette propriété système à l'aide de Maven.


AMD64 pour la plate-forme 64 bits