Запуск jar реагирует иначе, чем запуск в Intellij

Я работаю над проектом в Spring boot, используя maven. Прежде всего позвольте мне сказать вам, что в intellij все работает отлично, и я могу открыть веб-сайт, НО: Теперь мне нужно создать тестовую среду, поэтому я создал Jar с помощью maven. Я выбрал правильный профиль пружины, и теперь я запускаю банку с помощью этой команды в командной строке:

java -jar .\pegusapps-dashboard-0.4.0-SNAPSHOT.jar --spring.profiles.active=ext-api-dev,dev

Когда я запускаю это, весенняя загрузка запускается и начинает делать обычные вещи, как в intellij, но когда они компилируют часть, в которой мы используем rest api. Это дает мне эту ошибку:

Description:

Parameter 0 of constructor in com.pegusapps.dashboard.integration.tempo.TempoServiceImpl required a bean of type 'com.pegusapps.dashboard.integration.tempo.TempoRestApi' that could not be found.


Action:

Consider defining a bean of type 'com.pegusapps.dashboard.integration.tempo.TempoRestApi' in your configuration.

Позвольте мне объяснить структуру api. (это jira rest api)

  • Мы работаем с интерфейсом, который выполняет все вызовы остальных api.
  • Затем у нас есть интерфейс для уровня сервиса api.
  • А затем у нас есть реализация службы, в которой они получают доступ к интерфейсу, который выполняет все вызовы API.

Внутри реализации службы мы автоматически подключаем первый интерфейс в конструкторе, и именно отсюда возникает ошибка (из окна cmd).

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

Вы проверили, какую команду выполняет intellij-idea при запуске jar? Он должен быть поверх вывода консоли.

krizajb 16.03.2018 11:56

@krizajb запускает очень длинную команду, и что я могу сделать из нее, так это то, что она добавляет все зависимости в командную строку.

Emmerson Deneir 16.03.2018 12:00

Похоже, вы не создаете банку с помощью spring-boot-maven-plugin. Этот плагин создает толстую банку со всеми зависимостями.

cool 16.03.2018 13:04

@cool, это действительно ответ, я нашел это в Интернете и сейчас попробую.

Emmerson Deneir 16.03.2018 13:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
124
2

Ответы 2

Вы можете попробовать создать свой JAR с помощью Плагин Apache Maven Shade, как показано ниже.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>fully.qualified.MainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

Если вы еще не используете, используйте следующие

<build>
 <plugins>
  <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.0.0.RELEASE</version>
    <executions>
     <execution>
      <goals>
       <goal>repackage</goal>
      </goals>
     </execution>
    </executions>
  </plugin>
</plugins>
</build>

Другие вопросы по теме