Как передать внешний jar-файл в весенний загрузочный проект? - PullRequest
1 голос
/ 25 сентября 2019

Я создаю успокоительное приложение с весенней загрузкой.Это приложение использует внешние jar-файлы.

Когда я создаю war-файл для приложения и разворачиваю его как на локальном, так и на сервере, это работает нормально.Но когда я создаю исполняемый файл JAR этого приложения, он не использует внешний файл JAR.У меня исключение класса не найдено.

Как я могу решить эту проблему?

Кто-нибудь посоветует мне способ передачи внешнего файла JAR для выполнения файла JAR.

Ответы [ 4 ]

0 голосов
/ 26 сентября 2019

Мне нужно внести изменения в файл POM.Это решит мою проблему.

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>

Я просто добавлю эти строки, тогда мой исполняемый файл JAR работает нормально.

<configuration>
    <includeSystemScope>true</includeSystemScope>
    </configuration>
0 голосов
/ 25 сентября 2019

установите ваш внешний jar-файл, используя

mvn install:install-file 

, затем укажите его как зависимость maven

<dependency>
        <artifactId>your-custom-jar</artifactId>
        <groupId>group.id</groupId>
        <version>0.0.1</version>

</dependency>

, и Spring упакует его в окончательный исполняемый jar

для получения более подробной информации.по установке кастомного jar см. this

0 голосов
/ 25 сентября 2019

Вам необходимо создать Fat Jar / Uber Jar / Shadow Jar / Shaded Jar (какое бы имя вы ни выбрали), чтобы все ваши зависимости были заключены в файл JAR.Вот статья о том, как это сделать для maven. Это для gradle (https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow).

Gradle

Использование плагинов DSL:

plugins {
  id "com.github.johnrengelman.shadow" version "5.1.0"
}

Использование устаревшего приложения плагина:

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "com.github.jengelman.gradle.plugins:shadow:5.1.0"
  }
}

apply plugin: "com.github.johnrengelman.shadow"

Maven

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>2.0.1.RELEASE</version>
    </plugin>
</plugins>
0 голосов
/ 25 сентября 2019

Может быть, это может помочь

    <dependency>
        <artifactId>com.google</artifactId>
        <groupId>Ab</groupId>
        <version>0.0.4.3</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/Ab.jar</systemPath>
    </dependency>

Таким образом, вы можете добавить любой jar-файл в качестве зависимости maven.

...