Ich benutze Maven um ein paar Projekte zu erstellen und benutze das gMaven Plugin, um ein RPM zu erstellen, das das Hauptartefakt enthält. Ich möchte nur, dass Maven versucht, die RPM auf Systemen mit rpmbuild zu erstellen, und nicht auf Systemen, die dies nicht tun. Daher habe ich zwei separate Profile erstellt, eines, das standardmäßig sein soll und eines, das in einer Unix-Familie aktiviert werden soll OS.Warum benutzt Maven das erwartete Profil nicht?
Ich hätte schwören können, dass ich es getestet habe und alles funktionierte korrekt, aber jetzt läuft es das Unix-Familienprofil auch wenn ich auf OSX baue. Wenn ich jedoch die Betriebssystemfamilie des Profils in "Windows" ändere, weiß es definitiv, dass es sich nicht auf einem Windows-Computer befindet und daher das Standardprofil ausführt. Hier
ist der entsprechende Abschnitt meiner pom.xml-Datei:
<profiles>
<profile>
<id>default-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<rpmPhase>none</rpmPhase>
</properties>
</profile>
<profile>
<id>rpm-profile</id>
<activation>
<os>
<family>unix</family>
</os>
</activation>
<properties>
<rpmPhase>package</rpmPhase>
</properties>
</profile>
</profiles>
Im Maven Ausgabe:
OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac"
jedoch Maven setzt rpmPhase auf "Paket" statt „none "Das ist nicht das erwartete Verhalten.
Kann jemand sehen, ob ich etwas hier vermisse?
EDIT:
auch sicher, dass, wenn ich das OS Familie zu etwas, das nicht existiert, oder wenn ich den Aktivierungsblock insgesamt kommentieren Sie dann das Standardprofil verwendet, so scheint es, dass Maven aktiv passende mein OSX mit einem Unix-Betriebssystem.
Nun OSX ist ein UNIX-Betriebssystem - es basiert auf BSD. – OrangeDog