Zbuduj aplikację SWT z wieloma architekturami z Maven

Ustawiłem projekt Maven dla aplikacji SWT. Ta aplikacja działa na kilku platformach (OS X, 64-bitowy Windows, 32-bitowy Windows, 64-bitowy Linux i 32-bitowy Linux) i skonfigurowałem ją tak, aby platforma była wykrywana po uruchomieniu Maven i zapakowaniu aplikacja trafia do różnych katalogów docelowych. Oto odpowiednie części z pom.xml, aby to osiągnąć:

<code><profiles>
  <profile>
    <id>linux_x86_64</id>
    <activation>
      <os>
        <name>linux</name>
        <arch>amd64</arch>
      </os>
    </activation>
    <build>
      <directory>${project.basedir}/target/${project.version}/linux_x86_64</directory>
    </build>
  </profile>

  <profile>
    <id>win32_x86_64</id>
    <activation>
      <os>
        <name>linux</name>
        <arch>i386</arch>
      </os>
    </activation>
    <build>
      <directory>${project.basedir}/target/${project.version}/win32_x86_64</directory>
    </build>
    </profile>
  ...
</profiles>
</code>

A zależność używana dla SWT to:

<code><dependencies>
  <dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>swt</artifactId>
    <version>3.7.2.v3740</version>
  </dependency>
...
</dependencies>
</code>

Aby wyjaśnić, zainstalowałem w moim lokalnym repozytorium pakiet sztuczny SWT (org.eclipse.swt_3.7.2.v3740f.jar) iwszystko te specyficzne dla platformy (org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f, org.eclipse.swt.win32.x86_64_3.7.2.v3740f itp.).

Sposób, w jaki pakuję zależności, jest za pomocą folderu „lib” z wykorzystaniem wtyczki zależnej od Maven, a Maven jest wystarczająco inteligentny, aby skopiować zarówno atrapę pakietu SWT, jak i specyficzną dla platformy maszynę, na której pakuję aplikację. Jak na razie dobrze...

Problem polega na tym, że chciałbym skompilować aplikację dla różnych platform z jednego komputera. Jak to osiągnąć?

Próbowałem skonfigurować właściwość w każdym profilu ze słoikiem SWT potrzebnym dla każdej platformy, jak ta (przykład dla 64-bitowego systemu Windows):

<code><properties>
  <swt.artifactId>swt.win32.x86_64</swt.artifactId>
  <swt.version>3.7.2</swt.version>
</properties>
</code>

Ale biorąc to pod uwagę, zarówno słoik SWT specyficzny dla profilui ten specyficzny dla platformy, na którym używam Maven, zostanie skopiowany do katalogu „lib”, kończąc na trzech słoikach:

swt-3.7.2.v3740.jarswt.gtk.linux.x86_64-3.7.2.jarswt.win32.x86_64-3.7.2.jar

Czy mogę określić profil ignorujący maszynę, na której go używam, aby nie trzeba było ręcznie usuwać jego słoika SWT?

Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion