私はAkkaスタンドアロンプロジェクトを持っています
mico-kernel の Bootable インターフェイスを実装する
マイクロカーネルを使用した akka システムのパッケージ化に関するチュートリアル
sbt プラグインを使用する SBT プロジェクトについて説明します
マイクロカーネルを使用して Maven プロジェクトをパッケージ化する方法を教えてください。
Google で「akka microkernel maven」を検索すると、これがあなたの質問に対する最も競合する回答の 1 つとしてリストされます。
JCrnak のブログを読み、Maven アセンブリ プラグインとマニフェスト ファイルのドキュメントを読んだ後、JCranky のソリューションとは少し異なるソリューションを思いつくことができました。共有したいと思います。
最初の仮定は、マイクロカーネルのプラグインを含むすべての Akka プラグインが POM.xml で構成されていることです。第二に、配布するアプリケーションが開発されていること。
Maven パッケージ フェーズでは、実行可能な jar ファイルが作成されます。ただし、これにはアプリケーションのメイン クラスを java -jar コマンドを使用して直接実行する必要があります。メイン クラスの場所をパッケージ アプリケーションに認識させるために、次のプラグインを POM.xml のマニフェスト ファイルの構成と共に挿入します。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.bbox.gesture.BoundingBox</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
akka の依存関係をターゲット ファイルの lib ファイルにコピーするには、次のプラグインを追加します。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
このプラグインを使用して、必要なすべてのファイルをターゲット ファイルにコピーします。
次に、アセンブリ プラグインと descriptor.xml ファイルを使用して、ターゲット ファイルの内容を zip フォルダーにコピーします。以下は、descriptor.xml ファイルです。
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>akka</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/deploy</outputDirectory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>*.jar</exclude>
<exclude>*.zip</exclude>
</excludes>
</fileSet>
</fileSets>
<files>
<file>
<source>target/com-bbox-gesture-1.0-SNAPSHOT.jar</source>
<outputDirectory>/deploy</outputDirectory>
<destName>bbox.jar</destName>
</file>
<file>
<source>src/main/resources/application.conf</source>
<outputDirectory>/deploy/config</outputDirectory>
</file>
</files>
</assembly>
アセンブリ プラグインを実行するには、POM.xml に以下を追加します。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptors>
<descriptor>/descriptor.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
さらに、デプロイ ディレクトリ内から java -jar コマンドを実行してアプリケーションを起動する簡単なバッチ ファイルを追加します。以下は、バッチファイルからの簡単なスクリプトです
echo off
cls
start java -jar bbox.jar
start コマンドは、実行可能 jar ファイルに対して java -jar コマンドを実行します。bbox.jar ファイルは実行可能な jar ファイルです
アプリケーションを実行するには、サーバーで zip フォルダーを解凍し、start.bat ファイルに移動してクリックします。