Ошибка компиляции Maven: пакет не существуетJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка компиляции Maven: пакет не существует

Сообщение Anonymous »

Я пытаюсь добавить поддержку Maven в существующий корпоративный проект. Это многомодульный проект, и первые два модуля компилируются и упаковываются без проблем, но я сталкиваюсь с ошибкой компиляции. Я пытаюсь использовать одну и ту же зависимость в нескольких модулях.
Моя структура:

Код: Выделить всё

> + parent
>    - pom.xml
>    - module-1
>    -   pom.xml
>    - module-2  (Depends on module-1)
>    -   pom.xml
>    - module-3
>    -   pom.xml (Depends on both modules 1 and 2)
У меня проект открыт в Eclipse, и он не показывает ошибок. Когда я запускаю mvn clean install из родителя, он успешно устанавливает оба модуля 1 и 2, но не работает в модуле 3, говоря, что пакет xxx.yyy не существует и не может найти символ XXXYYY . Пакет xxx.yyy и символ XXXYYY находятся внутри jar, который указан в зависимостях обоих модулей 2 и 3.

Поскольку оба модуля зависят от одного и того же jar, я пытался добавить зависимость только к модулю 2, и я считаю, что модуль 3 должен видеть ее из-за транзитивных зависимостей, но он не смог увидеть пакет. Поэтому я попытался добавить зависимость как к модулям 2, так и к модулям 3, но проблема не исчезла.

Я уже проверял/пробовал это:
  • Запрошенный jar указан в моих зависимостях. Я выполнил следующую команду и после этого вижу необходимый файл .jar в списке зависимостей: mvn dependency:copy-dependentness
  • Как я уже говорил выше, Я попытался ввести свой путь к классам через транзитивную зависимость и ссылаться на него непосредственно в моем pom, и оба решения не сработали.
  • Я пытался удалить весь свой репозиторий и загрузить все заново, но тоже не получилось не работает
Единственная особенность моего проекта заключается в том, что модуль 3 зависит от модуля 2 и зависит от библиотеки, от которой также зависит модуль 2.

Ниже я вставляю помпы из модуля 2 и 3. Я изменил некоторые имена в соответствии с политикой компании.

Модуль-2

Код: Выделить всё

4.0.0

com.company
parent
0.0.1-SNAPSHOT


Module2



com.company
Module1
0.0.1-SNAPSHOT



com.company
SharedArtifact
1.1


...
Модуль-3

Код: Выделить всё

4.0.0

com.company
parent
0.0.1-SNAPSHOT


Module3



com.company
Module2
0.0.1-SNAPSHOT




...
И пакет, который нельзя увидеть, находится внутри «SharedArtifact». Когда я удаляю зависимость от Module2, он не выдает ошибку «пакет не существует» из пакета «SharedArtifact». Но затем появляется сообщение, что пакет не существует из jar Module2.

Похоже, что зависимости каким-то образом теряются, поскольку Module3 зависит от них обоих.

Я' m, используя Java 1.6.0_29 и Maven 3.0.5. И я не могу обновиться до Java 7, потому что проекту нужна Java 6. И не могу обновить Maven, потому что обновленный Maven работает только с Java 7 и выше.

Обновление 1:

При компиляции возникает следующая ошибка:

Код: Выделить всё

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] \Users\usuario\Documents\workspaces\myworkspace\qa\Module3\src\com\company\sharedartifact\package\SomeClass.java:[8,55]
package com.company.sharedartifact.package  does not exist
[ERROR] \Users\usuario\Documents\workspaces\myworkspace\qa\Module3\src\com\company\sharedartifact\package\SomeClass.java:[9,55]
package com.company.sharedartifact.package does not exist
[ERROR] \Users\usuario\Documents\workspaces\myworkspace\qa\Module3\src\com\company\sharedartifact\package\SomeClass.java:[17,85]
cannot find symbol
symbol  : class SomeOtherClass
Я не могу вставить весь журнал -X из-за политики компании, но если какая-то часть необходима, я могу изменить некоторые имена.

Обновление 2:

Сегодня я только что понял, что если запустить mvn чистая установка, она не скомпилируется. Но если я запускаю mvn clean, то (в Eclipse) я запускаю проект обновления Maven, а затем `mvn install, он компилируется!

Поскольку Я нашел это, я уже упоминал этот вопрос и считаю, что что-то не так с моим путем к классам. Поскольку я работаю с приложением Weblogic Portal, мне нужно сохранить некоторые общие библиотеки (те, которые необходимы как для проекта, так и для среды выполнения) в Eclipse. Возможно, на моем помпе забыли какую-то библиотеку. Странно то, что пакет, который, как утверждает компиляция, не существует, ДЕЙСТВИТЕЛЬНО существует.

Подробнее здесь: https://stackoverflow.com/questions/432 ... -not-exist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»