Добавьте локальный jar в pom.xml загрузочного приложения Spring - PullRequest
0 голосов
/ 20 мая 2019

Я создал два приложения весенней загрузки - foo и bar.Затем я создал файл jar для bar с помощью команды mvn clean package, что привело к созданию файла bar-0.0.1-SNAPSHOT.jar.Используя mvn install:install-file -Dfile=target/bar-0.0.1-SNAPSHOT.jar -DpomFile=pom.xml, как упомянуто в в этом посте , я установил этот jar в свой локальный репозиторий .m2.

Затем в pom.xml foo я добавил следующую зависимость:

<dependency>
    <groupId>com.foobarcompany</groupId>
    <artifactId>bar</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

Теперь, когда я запускаю приложение foo из STS, оно работает правильно, но если я пытаюсь запустить его из терминала с mvn spring-boot:run или попытаться упаковать foo с mvn clean package, Я получаю следующую ошибку:

package com.foobarcompany.bar.service does not exist

, которая ссылается на службу, присутствующую в приложении bar, которое я вызываю из приложения foo.

НасколькоЯ понимаю, что зависимость не добавлена ​​правильно, и причина, по которой она работает из STS, заключается в том, что оба приложения находятся в одной рабочей области.

Я даже пытался добавить локальный репозиторий maven, как упомянуто в этот ответ но даже это не похоже на работу.Или, может быть, я делаю это неправильно.

Может кто-нибудь сказать, пожалуйста, как правильно добавить локальный JAR-файл в другое приложение?

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Вы пропустили артефакт, версию и идентификатор группы, используйте следующую команду.

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id>
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

Ссылка: https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

0 голосов
/ 20 мая 2019

Я сделал mvn clean install, чтобы опубликовать его в папке .m2.После этого я добавил это как зависимость (что вы уже сделали).Последний шаг - добавление @ComponentScan (basePackages = {"com.foobarcompany.bar", "com.foobarcompany.foo"}) в ваш основной класс, где размещено ваше приложение @SpringBootApplication.Я могу запустить приложение с помощью mvn spring-boot: run.Это сработало для меня.

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