Heim > Java > javaLernprogramm > So packen Sie das Dubbo-Projekt mit Maven in ein JAR-Paket, um es auszuführen

So packen Sie das Dubbo-Projekt mit Maven in ein JAR-Paket, um es auszuführen

little bottle
Freigeben: 2019-04-30 10:41:45
nach vorne
2768 Leute haben es durchsucht

Die in diesem Artikel beschriebene Methode zur Verwendung von Maven zum Packen des Dubbo-Projekts in ein JAR-Paket zur Ausführung lautet: Verwenden Sie das Maven-Paketierungs-Plugin maven-jar-plugin, um am Ende der Datei pom.xml etwas Code hinzuzufügen . Interessierte Freunde können einen Blick darauf werfen, ich hoffe, es kann Ihnen helfen

Maven-Verpackungsmethode

Verwenden Sie das Maven-Verpackungs-Plug-In maven-jar-plugin
Fügen Sie am Ende den folgenden Code hinzu pom.xml Datei.
maven-dependency-plugin bezieht sich auf das Kopieren des abhängigen JAR-Pakets in das angegebene Verzeichnis
maven-resources-plugin Kopieren der abhängigen Ressourcen in das angegebene Verzeichnis

    <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>
Nach dem Login kopieren
  • Führen Sie die JAR-Paketmethode aus

Die Verzeichnisstruktur nach dem Packen
enthält Klassendateien und erforderliche Konfigurationsdateiinformationen (mit Ausnahme ausgeschlossener Konfigurationsdateien)

So packen Sie das Dubbo-Projekt mit Maven in ein JAR-Paket, um es auszuführen

MANIFEST.MFenthält die Für den Betrieb benötigte Informationen

Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar
...
Main-Class: com.alibaba.dubbo.container.Main
Nach dem Login kopieren

java -jar
Befehl starten
java -jar Bei der Ausführung des Befehls wird das Verzeichnis META-INFMANIFEST.MF als Hauptklassenparameter verwendet Dies ist der Einstiegspunkt der angegebenen Funktion beim Packen.

java -jar x-0.0.1-SNAPSHOT.jar
Nach dem Login kopieren

java -cp
Startbefehl

java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
Nach dem Login kopieren

Da ich in meinem Projekt auf externe Ressourcendateien verweisen muss, starte ich es normalerweise auf diese Weise
Die Adresse der Konfigurationsdatei ist ein absoluter Pfad

java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
Nach dem Login kopieren

-cp und -classpath haben die gleiche Wirkung
java -cp gibt normalerweise den Pfad anderer Klassen an, von denen die Operation abhängt Klassenbibliotheken. Bei JAR-Paketen und dergleichen werden mehrere Abhängigkeiten durch Semikolons „;“ auf Window und „:“ auf linux getrennt.
Ausdruck unterstützt Platzhalter

java -cp .:/Users/username/*.jar   packname.mainclassname
Nach dem Login kopieren
  • in ein JAR-Paket

Wenn Sie alle abhängigen JAR-Pakete in einem JAR-Paket ausführen müssen, können Sie maven-shade-plugindies verwenden Plugin.
Die Hauptfunktion dieses Plug-Ins besteht darin, das abhängige JAR-Paket in das aktuelle JAR-Paket zu packen und die Klasse während des Packens umzubenennen, wodurch der Mehrversionskonflikt des JAR-Pakets gelöst werden kann. Weitere Informationen finden Sie hier die offizielle Plug-in-Dokumentation.

Verwandte Tutorials: Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo packen Sie das Dubbo-Projekt mit Maven in ein JAR-Paket, um es auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage