Локальная банка неправильно импортируется в maven jar - PullRequest
0 голосов
/ 24 января 2020

Описание

У меня 3 программы.

Моя основная программа называется Main. Тогда у меня есть 2 jar файл: Utils1 и Utils2.

Utils2 используется в Utils1. Поэтому я импортировал его с помощью Maven, как показано ниже в Utils1 pom.xml.

<dependency>
     <groupId>org.group.project</groupId> // random text
     <artifactId>Project</artifactId> // random text
     <version>1.0.0</version> // random version
     <scope>system</scope>
     <systemPath>${basedir}/Utils2.jar</systemPath>
</dependency>

Utils2, содержит пакет с именем custompack, класс с именем MyMaths и метод с именем MyAddition.

Utils1 содержит класс с именем CustomMaths и метод с именем CustomAddition. CustomAddition Звоните Utils2.custompack.MyMaths.MyAddition.

Итак, код Utils1 выглядит так:

public int CustomAddition (int item1, int item2) {
    MyMaths mymaths = new MyMaths();
    return mymaths.MyAddition(item1, item2);
}

Проблема

Я сталкиваюсь Приведенная ниже ошибка при использовании CustomAddition в моей программе Main:

java .lang.NoClassDefFoundError: custompack / MyMaths

Вопрос

Полагаю, что банка Utils2 неправильно импортирована в банку Utils1.

У вас есть идеи? Спасибо.

1 Ответ

0 голосов
/ 24 января 2020

Я предполагаю, что Utils1 и Utils2 оба являются пользовательскими сборочными банками.

В зависимости от того, как работает maven,

  • Сначала вы должны построить проект Utils1, который должен скопировать артефакт / jar в репозиторий maven (по умолчанию C: \ Users [account]. m2 \ repository else check C: \ Users [account] .m2 \ settings. xml в случае переопределения).
  • Создайте проект Utils2 и запустите программу Main, которая использует класс из Utils2

Кроме того, так как это пользовательские модули, вы должны добавить зависимости, как показано ниже -

<dependency>
     <groupId>org.group.project</groupId> // random text
     <artifactId>Utils2</artifactId> // random text
     <version>1.0.0</version> // random version
</dependency>

Нижеприведенное следует использовать, когда у вас есть jar, недоступный в репозитории maven во время вашей сборки / выполнения процесс и должен быть извлечен из другого места

<systemPath>${system_path}/system.jar</systemPath>

См. https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

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