


Comment utiliser Maven pour empaqueter le projet Dubbo dans un package jar à exécuter
La méthode décrite dans cet article pour utiliser maven pour empaqueter le projet dubbo dans un package jar pour l'exécution est la suivante : utilisez le plug-in d'empaquetage maven maven-jar-plugin pour ajouter du code à la fin du fichier pom.xml. . Les amis intéressés peuvent y jeter un œil, j'espère que cela pourra vous aider
Méthode d'emballage maven
Utilisez le plug-in d'emballage maven maven-jar-plugin
Ajoutez le code suivant à la fin du pom.xml
fichier. maven-dependency-plugin
fait référence à la copie du package jar dépendant dans le répertoire spécifié maven-resources-plugin
Copie des ressources dépendantes dans le répertoire spécifié
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <!-- 是否依赖外部jar包 --> <addClasspath>true</addClasspath> <!-- 依赖外部jar包路径 --> <classpathPrefix>lib/</classpathPrefix> <!-- 启动函数 --> <mainClass>com.alibaba.dubbo.container.Main</mainClass> </manifest> </archive> <!-- 打包之后输出目录 --> <outputDirectory>${project.build.directory}/maven-archiver</outputDirectory> <!-- 剔除已打包的配置文件 --> <excludes> <exclude>*.*</exclude> <exclude>config/*</exclude> <exclude>config/tencent/*</exclude> <exclude>META-INF/spring/*</exclude> </excludes> </configuration> </plugin> <!-- 拷贝依赖的jar包到lib目录 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/maven-archiver/lib </outputDirectory> </configuration> </execution> </executions> </plugin> <!-- 拷贝依赖的资源文件包到resources目录 --> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/maven-archiver/resources</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> </plugins> </build>
- Exécutez la méthode du package jar
La structure des répertoires après emballage
inclut les fichiers de classe et les informations sur les fichiers de configuration requis (à l'exclusion des fichiers de configuration exclus)
dans MANIFEST.MF
contient les informations nécessaires au fonctionnement
Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar ... Main-Class: com.alibaba.dubbo.container.Main
java -jar
start command
java -jar Lors de l'exécution de la commande, le répertoire META-INFMANIFEST.MF sera utilisé Main-Class paramètre, c'est le point d'entrée de la fonction spécifiée lors du packaging.
java -jar x-0.0.1-SNAPSHOT.jar
java -cp
Commande de démarrage
java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
Parce que j'ai besoin de référencer des fichiers de ressources externes dans mon projet, je le démarre généralement de cette façon
L'adresse du fichier de configuration est un chemin absolu
java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
-cp
et -classpath
ont le même effet
java -cp spécifie le chemin des autres classes dont dépend l'opération, généralement bibliothèques de classes, pour les packages jar et autres, plusieurs dépendances sont séparées par des points-virgules ";" sur Window
et ":" sur linux
.
Expression prend en charge les caractères génériques
java -cp .:/Users/username/*.jar packname.mainclassname
- dans un package jar
Si vous devez exécuter tous les packages jar dépendants dans un seul package jar, vous pouvez utiliser maven-shade-plugin
ceci plugin.
La fonction principale de ce plug-in est de regrouper le package jar dépendant dans le package jar actuel et de renommer la classe lors de l'empaquetage, ce qui peut résoudre le conflit multi-version du package jar. Pour plus de détails, vous pouvez vérifier. la documentation officielle du plug-in.
Tutoriels associés : Tutoriel vidéo Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est
