この記事で説明する、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>
パッケージ化後のディレクトリ構造
クラス ファイルと必要な設定ファイルの情報が含まれます (設定ファイルを除く)
#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
を使用できます。 maven-shade-pluginこのプラグイン。
このプラグインの主な機能は、依存する jar パッケージを現在の jar パッケージにパッケージ化し、パッケージ化中にクラスの名前を変更することで、jar パッケージの複数バージョンの競合を解決できます。公式プラグインのドキュメント。
以上がMaven を使用して dubbo プロジェクトを jar パッケージにパッケージ化して実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。