[JAVA] Inclure le pot externe dans le package avec Spring boot2 + Maven3

introduction

Les membres de l'équipe étaient accros au site, et même si j'essayais de savoir comment le faire, cela n'a pas fonctionné, alors je vais laisser une note de ce que j'ai fait un peu différemment.

Ce n'est pas particulièrement difficile, mais quand ça va, ça va.

environnement

Java8 Maven3 Spring boot 2.0.2.RELEASE

Objectif

Inclure le fichier jar externe dans le fichier jar créé avec le package propre ./mvnw

Créer un projet

Cette fois, il suffit de l'inclure dans le package, il n'y a donc pas d'implémentation particulière.

pom.xml Nous allons définir le jar externe dans pom.xml sans implémentation.

dependencies Cela ne peut pas être aidé si ce n'est que dans le package, je vais donc ajouter les informations du fichier jar que je souhaite ajouter cette fois à la dépendance. Si vous mettez à jour après l'avoir ajouté, vous ne devriez pas avoir de problèmes de développement sur Eclipse.

Je ne suis pas très familier avec l'expansion des variables de maven, mais lors de la définition d'un dossier, deux choses, $ {project.basedir} et $ {basedir}, restent souvent bloquées dans la recherche pour spécifier le dossier de référence. Cependant, il semble que le premier pointe vers le répertoire du projet et le second pointe vers le répertoire pom.xml. Pour le moment, quand j'ai regardé la page maven, j'ai souvent vu la première, donc cette fois j'utiliserai $ {project.basedir}`.

Notez qu'il semble que version et la dernière version du nom du jar doivent correspondre (une erreur se produira dans Eclipse), veuillez donc faire correspondre cela.

pom.xml


<dependency>
    <groupId>com.tasogarei</groupId>
    <artifactId>hogehoge</artifactId>
    <version>1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/hogehoge1.jar</systemPath>
</dependency>

plugins Le réglage à mélanger dans le pot se fait à partir du réglage du plugin. Il y a ʻincludeSystemScope dans configurationet il vous suffit de le rendrevrai`.

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

Placez le pot dans le répertoire configuré

Cette fois, il est défini comme $ {project.basedir} / lib / hogehoge1.jar, alors placez un fichier jar approprié. Tout allait bien, alors j'ai apporté le pot qui était en .m2 / de manière appropriée.

Vérifiez s'il est vraiment inclus

C'est tout pour les paramètres. Essayons.

package Faites-en un bocal à partir de la commande mvnw.

./mvnw clean package

Vérifiez le contenu du pot

Maintenant que vous avez réussi à créer un fichier jar, vérifions le contenu du fichier jar créé avec jar tf. Quand j'ai vérifié, BOOT-INF / lib / hogehoge-1.jar existe, donc j'ai réussi à inclure le fichier externe en toute sécurité.

$ jar tf jartest-0.0.1-SNAPSHOT.jar | sort
BOOT-INF/
BOOT-INF/classes/
BOOT-INF/classes/application.properties
BOOT-INF/classes/com/
BOOT-INF/classes/com/tasogarei/
BOOT-INF/classes/com/tasogarei/app/
BOOT-INF/classes/com/tasogarei/app/JartestApplication.class
BOOT-INF/lib/
BOOT-INF/lib/hogehoge-1.jar
BOOT-INF/lib/javax.annotation-api-1.3.2.jar
BOOT-INF/lib/jul-to-slf4j-1.7.25.jar
BOOT-INF/lib/log4j-api-2.10.0.jar
BOOT-INF/lib/log4j-to-slf4j-2.10.0.jar
BOOT-INF/lib/logback-classic-1.2.3.jar
BOOT-INF/lib/logback-core-1.2.3.jar
BOOT-INF/lib/slf4j-api-1.7.25.jar
BOOT-INF/lib/snakeyaml-1.19.jar
BOOT-INF/lib/spring-aop-5.0.6.RELEASE.jar
BOOT-INF/lib/spring-beans-5.0.6.RELEASE.jar
BOOT-INF/lib/spring-boot-2.0.2.RELEASE.jar
BOOT-INF/lib/spring-boot-autoconfigure-2.0.2.RELEASE.jar
BOOT-INF/lib/spring-boot-starter-2.0.2.RELEASE.jar
BOOT-INF/lib/spring-boot-starter-logging-2.0.2.RELEASE.jar
BOOT-INF/lib/spring-context-5.0.6.RELEASE.jar
BOOT-INF/lib/spring-core-5.0.6.RELEASE.jar
BOOT-INF/lib/spring-expression-5.0.6.RELEASE.jar
BOOT-INF/lib/spring-jcl-5.0.6.RELEASE.jar
META-INF/
META-INF/MANIFEST.MF
META-INF/maven/
META-INF/maven/com.tasogarei/
META-INF/maven/com.tasogarei/jartest/
META-INF/maven/com.tasogarei/jartest/pom.properties
META-INF/maven/com.tasogarei/jartest/pom.xml
org/
org/springframework/
org/springframework/boot/
org/springframework/boot/loader/
org/springframework/boot/loader/archive/
org/springframework/boot/loader/archive/Archive$Entry.class
org/springframework/boot/loader/archive/Archive$EntryFilter.class
org/springframework/boot/loader/archive/Archive.class
org/springframework/boot/loader/archive/ExplodedArchive$1.class
org/springframework/boot/loader/archive/ExplodedArchive$FileEntry.class
org/springframework/boot/loader/archive/ExplodedArchive$FileEntryIterator$EntryComparator.class
org/springframework/boot/loader/archive/ExplodedArchive$FileEntryIterator.class
org/springframework/boot/loader/archive/ExplodedArchive.class
org/springframework/boot/loader/archive/JarFileArchive$EntryIterator.class
org/springframework/boot/loader/archive/JarFileArchive$JarFileEntry.class
org/springframework/boot/loader/archive/JarFileArchive.class
org/springframework/boot/loader/data/
org/springframework/boot/loader/data/RandomAccessData.class
org/springframework/boot/loader/data/RandomAccessDataFile$1.class
org/springframework/boot/loader/data/RandomAccessDataFile$DataInputStream.class
org/springframework/boot/loader/data/RandomAccessDataFile$FileAccess.class
org/springframework/boot/loader/data/RandomAccessDataFile.class
org/springframework/boot/loader/ExecutableArchiveLauncher.class
org/springframework/boot/loader/jar/
org/springframework/boot/loader/jar/AsciiBytes.class
org/springframework/boot/loader/jar/Bytes.class
org/springframework/boot/loader/jar/CentralDirectoryEndRecord.class
org/springframework/boot/loader/jar/CentralDirectoryFileHeader.class
org/springframework/boot/loader/jar/CentralDirectoryParser.class
org/springframework/boot/loader/jar/CentralDirectoryVisitor.class
org/springframework/boot/loader/jar/FileHeader.class
org/springframework/boot/loader/jar/Handler.class
org/springframework/boot/loader/jar/JarEntry.class
org/springframework/boot/loader/jar/JarEntryFilter.class
org/springframework/boot/loader/jar/JarFile$1.class
org/springframework/boot/loader/jar/JarFile$2.class
org/springframework/boot/loader/jar/JarFile$JarFileType.class
org/springframework/boot/loader/jar/JarFile.class
org/springframework/boot/loader/jar/JarFileEntries$1.class
org/springframework/boot/loader/jar/JarFileEntries$EntryIterator.class
org/springframework/boot/loader/jar/JarFileEntries.class
org/springframework/boot/loader/jar/JarURLConnection$1.class
org/springframework/boot/loader/jar/JarURLConnection$JarEntryName.class
org/springframework/boot/loader/jar/JarURLConnection.class
org/springframework/boot/loader/jar/StringSequence.class
org/springframework/boot/loader/jar/ZipInflaterInputStream.class
org/springframework/boot/loader/JarLauncher.class
org/springframework/boot/loader/LaunchedURLClassLoader$UseFastConnectionExceptionsEnumeration.class
org/springframework/boot/loader/LaunchedURLClassLoader.class
org/springframework/boot/loader/Launcher.class
org/springframework/boot/loader/MainMethodRunner.class
org/springframework/boot/loader/PropertiesLauncher$1.class
org/springframework/boot/loader/PropertiesLauncher$ArchiveEntryFilter.class
org/springframework/boot/loader/PropertiesLauncher$PrefixMatchingArchiveFilter.class
org/springframework/boot/loader/PropertiesLauncher.class
org/springframework/boot/loader/util/
org/springframework/boot/loader/util/SystemPropertyUtils.class
org/springframework/boot/loader/WarLauncher.class

Recommended Posts

Inclure le pot externe dans le package avec Spring boot2 + Maven3
Hello World avec Eclipse + Spring Boot + Maven
Configurer l'application Spring Boot avec le module multiple maven
Testez le contrôleur avec Mock MVC dans Spring Boot
Traitement asynchrone avec exécution régulière dans Spring Boot
Télécharger avec Spring Boot
Inclure l'image dans le fichier jar avec la méthode statique java
SSO avec GitHub OAuth dans l'environnement Spring Boot 1.5.x
Jusqu'à ce que vous commenciez à développer avec Spring Boot dans eclipse 1
Comment démarrer par environnement avec Spring Boot de Maven
Chargez un pot externe à partir du pot de graisse Spring Boot
Jusqu'à ce que vous commenciez à développer avec Spring Boot dans eclipse 2
Création d'un environnement de base de données avec Docker dans Spring Boot (IntellJ)
Définir le paramètre contextuel dans Spring Boot
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Implémenter GraphQL avec Spring Boot
Démarrez avec Spring Boot
Bonjour tout le monde avec Spring Boot!
Multi-projets Spring Boot 2 avec Gradle
Exécutez LIFF avec Spring Boot
Connexion SNS avec Spring Boot
Téléchargement de fichiers avec Spring Boot
Spring Boot commençant par copie
Spring Boot à partir de Docker
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
Utiliser Spring JDBC avec Spring Boot
Changements majeurs dans Spring Boot 1.5
Ajouter un module avec Spring Boot
Premiers pas avec Spring Boot
NoHttpResponseException dans Spring Boot + WireMock
Priorité de réglage externe Spring Boot
Créer un micro service avec Spring Boot
Envoyer du courrier avec Spring Boot
Utilisez thymeleaf3 avec le parent sans spécifier spring-boot-starter-parent dans Spring Boot
Développement facile d'applications Web avec STS et Spring Boot. Dans 10 minutes.
Utiliser l'authentification de base avec Spring Boot
Spring Boot Hello World dans Eclipse
Développement d'applications Spring Boot dans Eclipse
gRPC sur Spring Boot avec grpc-spring-boot-starter
Créez une application avec Spring Boot 2
Déploiement à chaud avec le développement Spring Boot
Liaison de base de données avec doma2 (Spring boot)
Écrire du code de test avec Spring Boot
Comment créer un fichier jar sans dépendances dans Maven
Voir le comportement de redirection relative avec le paramètre server.tomcat.use-relative-redirects dans Spring Boot
Programmation Spring Boot avec VS Code
Jusqu'à "Hello World" avec Spring Boot
Créer une application d'enquête avec Spring Boot
Obtenez des résultats de validation avec Spring Boot
Comparez Hello, world! Avec Spring Boot avec Java, Kotlin et Groovy
(Intellij) Hello World avec Spring Boot
Créez une application avec Spring Boot
Implémenter l'API REST avec Spring Boot
Qu'est-ce que @Autowired dans Spring Boot?
Google Cloud Platform avec Spring Boot 2.0.0
Implémenter l'application Spring Boot dans Gradle
Inclure les ressources d'image dans le fichier jar
J'ai essayé GraphQL avec Spring Boot