Я никогда раньше не работал с Maven, но после того, как у меня возникло много проблем с зависимостями mockito в моем модуле Netbeans, я решил создать новую с помощью Maven и переместить все в этот новый проект. Через некоторое время мне удалось запустить модуль в порядке.
Проблема в том, что когда я использую некоторые функции, которые требуют API Netbeans, я получаю исключение.
Я предполагаю, что проблема в зависимостях, объявленных в pom.xml
. В некоторых операциях импорта, которые я использую в своем приложении, я получаю следующее сообщение:
Указан пакет из зависимостей переходного модуля, объявить
прямая зависимость для исправления.
Когда я очищаю и собираю или запускаю mvn clean install
в корневом каталоге, я получаю эту ошибку:
Проект использует классы из переходного модуля
org.netbeans.api: org-netbeans-modules-projectapi: jar: RELEASE73 который
не будет доступен во время выполнения.
Чтобы исправить проблему, добавьте этот модуль в качестве прямой зависимости. Для пакетов OSGi, которые должны быть упакованы в модули NetBeans, используйте
useOSGiDependencies = false параметр
В объявлении плагина org.codehaus.mojo
(которое было единственным с тегом useOSGiDependencies
) я попытался изменить useOSGiDependencies=true
на useOSGiDependencies=false
, но это не сработало. Я также попытался изменить RELEASE73
на RELEASE82
, так как я использую Netbeans 8.2, но это не сработало. Я также попробовал несколько других возможных решений, которые нашел в Google, но ни одно из них не помогло мне.
Это зависимости API Netbeans от моего pom.xml
файла:
<dependencies>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-project-libraries</artifactId>
<version>RELEASE73</version>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-api-annotations-common</artifactId>
<version>RELEASE82</version>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-util</artifactId>
<version>RELEASE82</version>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-awt</artifactId>
<version>RELEASE82</version>
</dependency>
<dependency>
<groupId>org.netbeans.modules</groupId>
<artifactId>org-netbeans-core</artifactId>
<version>RELEASE73</version>
</dependency>
<!-- ... -->
</dependencies>
Я искал везде, но не мог найти простой ответ о том, как объявить прямую зависимость.
Может кто-нибудь объяснить мне, что я здесь не так делаю?