проблема зависимости maven, когда jenkins строит проект

У меня есть два проекта maven, скажем, A и B, просто A требует B, обратное неверно. Нет проблем, когда я упаковываю A из eclipse. В «pom.xml» проекта A есть узел зависимости от B. В jenkins я настроил проект B, добавив три цели: «чистая установка пакета». Поэтому всякий раз, когда сборка B завершается, должен существовать архивный файл B в моем локальном репозитории maven (я проверил). С другой стороны, когда я собираю проект A, я получаю много ошибок компиляции «не могу найти символ x». В чем может быть проблема, есть идеи?

Заранее спасибо.


person st.    schedule 09.09.2011    source источник


Ответы (1)


Просто чтобы убедиться: вы заглянули в ~jenkins/.m2/repository/, да?

Обратите внимание, что install всегда включает package, поэтому clean install достаточно.

Но проблема в другом.

  1. Убедитесь, что версии совпадают. Используйте точный номер версии в зависимости от A, а не диапазон версий, чтобы убедиться, что он подбирает (в противном случае Maven может найти «более подходящую» версию).

  2. Если бы зависимости не было, Maven не запустил бы компилятор (поскольку построение пути к классам завершилось бы неудачей). Так что проблема не в файле JAR, а в содержимом. Убедитесь, что JAR-файл B действительно содержит то, что вы ожидаете (jar tvf — ваш друг).

  3. Удалите репозиторий на сервере Jenkins, чтобы убедиться, что там нет старого мусора.

person Aaron Digulla    schedule 09.09.2011
comment
большое спасибо за ваш интересный Аарон. Я обнаружил проблему, как вы указали в 2 (содержимое файла jar): перед настройкой jenkins я копирую источник B в SVN (впервые я разрабатывал в своем локальном). Однако я неправильно скопировал как main и test. Когда я исправил структуру папок как src/main и src/test, проблема, связанная со сборкой проекта A, исчезла. - person st.; 09.09.2011