Проблема с компиляцией для Maven проекта
У меня есть два проекта Maven - библиотека и небольшая программа. Они находятся в разных папках и используют разные pom.xml
, а файлы jar библиотеки включены в небольшую программу pom.xml
с использованием следующего плагина:
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
и абсолютный путь:
<resource><directory>/path/to/jars</directory></resource>
Это сработало правильно, но вдруг с тем же кодом, что и раньше в обоих проектах, небольшая программа больше не компилируется. Библиотека по-прежнему компилируется нормально.
(С помощью mvn package -Dmaven.test.skip=true
)
Сообщение об ошибке не очень ясно:
[ERROR] error: error while loading <root>, error in opening zip file
[ERROR] error: scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found.
[ERROR] at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16)
[ERROR] at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17)
...
[ERROR] error: fatal error: object scala.runtime in compiler mirror not found.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.935s
[INFO] Finished at: Fri Nov 15 22:39:11 CET 2013
[INFO] Final Memory: 9M/67M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.0:compile (default) on project testprogram: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1(Exit value: 1) -> [Help 1]
Я провел несколько исследований в Google по поводу сообщения об ошибке, и, похоже, это может быть вызвано отсутствием или повреждением файла .jar. Я не вижу связи с этим делом, потому что у меня был один и тот же код и импорт как в рабочем, так и в не рабочем случае.
ОБНОВЛЕНИЕ: добавить больше информации: библиотека использует junixsocket и включает .jar так же, как программа включает библиотеку. Кажется, что проблема появляется только тогда, когда эта часть есть.
Ответы
Ответ 1
Два ключевых помощника в выяснении того, что делает Maven и почему это делает:
mvn help :ffective-pom - генерирует pom файл со всеми решенными свойствами и всеми описанными задачами, включая стандартные.
mvn -X - отладка при выполнении maven сгенерирует много информации.
Обычно я направляю mvn -X в текстовый файл, а затем отправляюсь на поиски ключевых слов вокруг ошибок. t Я использую эффективный pom, чтобы помочь мне понять, как он получает значения.
Проблемы с путями обычно являются проблемой в такого рода проблемах, если в этом случае не удается найти необходимое.
Ответ 2
Открытие zip файла во время компиляции maven может быть вызвано тем, что pliugin компилятора maven пытается взорвать jar для показа в classpath во время компиляции. Если это так, вы можете проверить, не поврежден ли ваш .m2/репозиторий.
Еще одна проверка, которую вы можете сделать, это прочитать в pom, если есть плагин, который указывает на определенную папку для вашей компиляции, которая предоставляет определенные библиотеки, поэтому восстановление библиотеки в папке должно решить ваши проблемы