Сборка модуля с разными версиями библиотек в 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 с правильными версиями. Таким образом, вы получите точную версию, необходимую для этого приложения.