Maven - «Ссылка на пакет из транзитивного модуля, объявить прямую зависимость для исправления». - PullRequest
0 голосов
/ 31 августа 2018

Я никогда раньше не работал с 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>

Я искал везде, но не мог найти простой ответ о том, как объявить прямую зависимость.

Может кто-нибудь объяснить мне, что я здесь не так делаю?

1 Ответ

0 голосов
/ 31 августа 2018

Покопавшись еще немного, я обнаружил, что мне нужно было добавить все зависимости вручную. Этот ответ мне очень помог.

Мне просто не хватает опыта с Maven По сути, я гуглил org-netbeans-modules-projectapi: jar: RELEASE73 maven ввел первую ссылку и добавил необходимую зависимость в мой проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...