1

Maven wurde hauptsächlich zur Unterstützung von Java entwickelt. Ich möchte jedoch einige plattformabhängige Artefakte in maven repository speichern.Zurückfallen maven Abhängigkeit zu allgemeiner Klassifizierer

Ich habe 2 Klassifizierer zu diesem Zweck:

  • linux- x86
  • linux- x64

Ist es möglich, eine Abhängigkeit so zu definieren, dass, wenn linux- x64 Artefakt wurde nicht gefunden, dann versucht Maven zu finden linux- x86?

Dank

+0

Sie sollten einen Blick auf das Maven-Nar-Plugin https://github.com/duns/maven-nar-plugin werfen – khmarbaise

Antwort

0

Ich fürchte, es gibt keinen Weg gibt, dies zu tun. In der Tat ist es wirklich gegen Maven Philosophie von strikten und direkten Abhängigkeiten. Stellen Sie sich vor, welcher Compiler sollte mit solchen Abhängigkeiten Deklaration machen? Sollte kompilieren mit linux-x86 Artefakt oder linux-x64 Artefakt? Ich nehme an, dass die API/SPI dieser Module das gleiche ist, aber nur du weißt das. Der Compiler benötigt einen bestimmten Klassenpfad. Und es ist schwer zu sagen, was es in Maven bedeutet, dass ein Artefakt nicht gefunden werden kann, da die Leute verschiedene Repositories benutzen können und verschiedene Sachen in ihren lokalen Repos haben, so dass der Build nicht mehr wiederholbar ist. Das Maven-Team geht derzeit davon aus, dass es veraltet ist und rät von den Versionsbereichen ab, weil die Build-Unwiederholbarkeit nicht gegeben ist, und das ist wirklich "weich" im Vergleich zu Ihrer Idee.

Mein Rat ist, immer diese beiden Artefakte (linux-x86 und linux-x64) freizugeben und auch die Artefakte freizugeben, die von ihnen mit diesen 2 Klassifikatoren abhängen. Das ist der Maven-Weg.

+0

Vielen Dank. Es macht Sinn. –