ホームページ  >  記事  >  Java  >  Maven を使用して dubbo プロジェクトを jar パッケージにパッケージ化して実行する方法

Maven を使用して dubbo プロジェクトを jar パッケージにパッケージ化して実行する方法

little bottle
little bottle転載
2019-04-30 10:41:452652ブラウズ

この記事で説明する、maven を使用して dubbo プロジェクトを実行用の jar パッケージにパッケージ化する方法は次のとおりです。maven パッケージング プラグイン maven-jar-plugin を使用して、pom.xml ファイルの末尾にコードを追加します。 。興味のある友人はぜひ見てください。お役に立てれば幸いです。

maven パッケージ化メソッド

Maven パッケージング プラグインを使用しますmaven-jar-plugin
at pom.xml ファイルの最後に次のコードを追加します。
maven-dependency-plugin は、依存する jar パッケージを指定されたディレクトリにコピーすることを指します
maven-resources-plugin依存するリソースを指定されたディレクトリにコピーする

    <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>
  • jar パッケージの実行方法

パッケージ化後のディレクトリ構造
クラス ファイルと必要な設定ファイルの情報が含まれます (設定ファイルを除く)

Maven を使用して dubbo プロジェクトを jar パッケージにパッケージ化して実行する方法

#MANIFEST.MF

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

java -jarStart の操作に必要な情報が含まれていますcommand
java -jar コマンドを実行すると、パッケージ化時に指定した関数のエントリポイントである META-INFMANIFEST.MF ディレクトリ内の Main-Class パラメータが使用されます。

java -jar x-0.0.1-SNAPSHOT.jar

java -cp起動コマンド

java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
プロジェクト内で外部リソース ファイルを参照する必要があるため、通常はこの方法で開始します


設定ファイルのアドレスは絶対パスです

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

-cp-classpath は同じ効果がありますjava -cp は依存関係です指定された操作のパス 他のクラス (通常はクラス ライブラリ、jar パッケージなど) のパス。 複数の依存関係は、
Window ではセミコロン「;」、 linux では「:」で区切られます。 式はワイルドカードをサポートしています

java -cp .:/Users/username/*.jar   packname.mainclassname
    jar パッケージに入力します
すべての依存する jar パッケージを 1 つの jar パッケージで実行する必要がある場合は、

を使用できます。 maven-shade-pluginこのプラグイン。 このプラグインの主な機能は、依存する jar パッケージを現在の jar パッケージにパッケージ化し、パッケージ化中にクラスの名前を変更することで、jar パッケージの複数バージョンの競合を解決できます。公式プラグインのドキュメント。

関連チュートリアル:

Java ビデオ チュートリアル

以上がMaven を使用して dubbo プロジェクトを jar パッケージにパッケージ化して実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。