Maven зависимость от Uber Jar, местные против Дженкинса - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть проект A, который использует определенный сторонний репозиторий и зависит от нескольких jar-файлов из этого репозитория.

Я компилирую Project A с зависимостями (толстый Jar-файл) и загружаю его в мой артефакт.Теперь я начинаю проект B, но я не хочу, чтобы у него было это стороннее репо, потому что все классы, в которых я нуждаюсь, уже находятся в той толстой банке, которую я имею в артефакте.Поэтому я только добавляю зависимость для проекта A в проект B (у проекта B мой артефакт в качестве репозитория)

Когда я собираю проект B на моем сервере jenkins, все идет хорошо, но когда я пытаюсь скомпилировать проект Bна моем локальном компьютере (у которого есть доступ к артефакту) я терплю неудачу, потому что он пытается загрузить некоторые зависимости проекта А, не имея стороннего репозитория.

Я хорошо знаю, что это не лучший способ работать,но то, что я не получаю, это то, почему в моем локальном окружении я получаю ошибку, в то время как jenkins нет?

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

Почему Дженкинс преуспел в сборке, а я нет?

1 Ответ

0 голосов
/ 20 ноября 2018

Если вы используете тот же самый узел Jenkins для создания своего проекта B, в котором вы изначально создали проект A, то Maven использует зависимости A из локального репозитория Maven.Попробуйте очистить его, а затем построить проект B там - работа все еще успешна?

Вы можете использовать следующее объявление зависимости в проекте B, чтобы исключить ВСЕ переходные зависимости A:

<dependency>
    <groupId>groupA</groupId>
    <artifactId>artifactA</artifactId>
    <excludes>
        <exclude>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
        </exclude>
    </excludes>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...