Сборка модуля с разными версиями библиотек в Maven

У меня есть модуль Netbeans (Module.jar) с большим количеством зависимостей, заявленных на его pom.xml:

<groupId>com.company</groupId>
<artifactId>module</artifactId>
<packaging>nbm</packaging>
...
<dependency>
    <groupId>org.netbeans.api</groupId>
    <artifactId>org-netbeans-modules-editor-lib</artifactId>
    <version>${netbeans.version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.netbeans.api</groupId>
    <artifactId>org-netbeans-modules-editor-lib2</artifactId>
    <version>${netbeans.version}</version>
</dependency>
...
<properties>
    <netbeans.version>RELEASE701</netbeans.version>
</properties>

Как видите, версия объявлена ​​как переменная netbeans.version,

Теперь у меня есть два приложения на платформе Netbeans, которые используют этот модуль: ApplicationA использует платформу NB версии 6.9.1 и ApplicationB использует NB Platform 7.0.1. Оба объявят Module как зависимость:

<dependency>
    <groupId>com.company</groupId>
    <artifactId>module</artifactId>
    <version>3.0.10</version>
</dependency>

Module прекрасно компилируется с обеими версиями платформы, но будет работать правильно только в том случае, если она была скомпилирована с той же версией библиотек, которую использует текущее приложение (т.е. Module будет правильно работать только на ApplicationA если скомпилировано с версией 6.9.1, и будет правильно работать только на ApplicationB если скомпилировано с версией 7.0.1).

Как / где я могу определить переменную netbeans.version, так Module скомпилирует правильную версию библиотеки в соответствии с приложением, которое будет ее использовать?

1 ответ

Решение

Вы должны включить зависимости netbeans непосредственно в poms ApplicationA и ApplicationB с правильными версиями. Таким образом, вы получите точную версию, необходимую для этого приложения.

Другие вопросы по тегам