Реализация проекта с Maven в другом проекте Maven - PullRequest
0 голосов
/ 06 июня 2019

Я создал проект Java с maven, который хочу реализовать в другом проекте maven.

Дочерний проект не является весенним проектом, это проект Java, созданный с нуля, перенесенный в maven для управления зависимостями..

Я могу создать банку с помощью mvn install.Пока все хорошо.

Затем я пытаюсь внедрить этот jar-файл в другой проект, созданный с использованием maven и spring.

Для этого я добавил этот jar в локальное хранилище maven с помощью следующей команды:

mvn install:install-file -Dfile=/Users/.../target/app-0.0.1-SNAPSHOT.jar -DgroupId=com.mycompany.childapp -DartifactId=childapp -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar

Тогда я вижу, что в папке репозитория в .m2 файл jar указан правильно.

И это в родительском проекте pom.xml:

<dependency>
      <groupId>com.mycompany.childapp</groupId>
      <artifactId>childapp</artifactId>
      <version>0.0.1-SNAPSHOT</version>
 </dependency>

А также, в разделе плагинов:

<plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

По крайней мере для затмения все хорошо, так как я могу без проблем разрабатывать и реализовывать классы внутри библиотеки.Я могу создать родительское приложение с помощью mvn clean package Но когда я запускаю приложение и пытаюсь выполнить раздел кода, который использует дочернюю библиотеку, я получаю ClassNotFoundException для классов, которые находятся в дочернем проекте.

В родительском проекте, в библиотеках, импортированных maven, я вижу, что в моей библиотеке есть значок папки вместо того, который есть у другого.

enter image description here

Как это можно исправить?

Ответы [ 3 ]

0 голосов
/ 06 июня 2019

Согласно комментариям, вы хотите создать проект с Maven, который создаст файл JAR. Этот файл JAR будет использоваться в другом проекте. Если мое понимание верно. Вы должны сделать следующее.

  1. Создание простого проекта maven с простым типом архетипа.
  2. Запустите pom.xml с помощью команды, подобной mvn clean install или mvn clean package.
  3. Используйте файл jar из простого проекта, загруженного в хранилище nexus / artifactory, и используйте определение maven в другом проекте maven.

Если у вас нет нексуса или артефакта, вы можете использовать файл jar локально в другом проекте maven.

Чтобы добавить JAR-файл локально в другом проекте, вы должны добавить следующую структуру зависимостей в pom.xml.

<dependency>
    <groupId>your group id</groupId>
    <artifactId>name of the application</artifactId>
    <version>some version</version>
    <scope>system</scope>
    <systemPath>your location/jar-file-name.jar</systemPath>
</dependency>

Надеюсь, это ответит на ваш вопрос.

0 голосов
/ 10 июня 2019

Наконец-то получилось, что библиотека была похожа на «поврежденную» ... или что-то в этом роде. Это был Java-проект (созданный с помощью мастера затмений), а затем я преобразовал его в maven (с помощью мастера затмений).

Я начал новый проект как проект maven с самого начала, и все работало с первой попытки ....

Так что мне просто нужно запустить mvn clean install, чтобы сгенерировать jar и установить в.m2 repo

Затем в основном приложении pom.xml я должен объявить как и любую другую зависимость:

<dependency>
        <groupId>com.mycompany</groupId>
        <artifactId>mylibrary</artifactId>
        <version>0.0.1</version>
    </dependency>
0 голосов
/ 06 июня 2019

mvn clean package создает jar для родительского проекта, но не включает дочерний jar.

Вы должны использовать SpringBoot

  • mvn bootRun для локального запуска проекта
  • mvn bootJar для создания толстой фляги, которая будет включать все необходимые зависимости.

    Чтобы запустить этот толстый кувшин, позвоните java -jar parent.jar

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