0

私はAkkaスタンドアロンプ​​ロジェクトを持っています

mico-kernel の Bootable インターフェイスを実装する

マイクロカーネルを使用した akka システムのパッケージ化に関するチュートリアル

sbt プラグインを使用する SBT プロジェクトについて説明します

マイクロカーネルを使用して Maven プロジェクトをパッケージ化する方法を教えてください。

4

2 に答える 2

1

Google で「akka microkernel maven」を検索すると、これがあなたの質問に対する最も競合する回答の 1 つとしてリストされます。

于 2012-10-21T11:41:28.063 に答える
0

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 ファイルに移動してクリックします。

于 2012-11-19T03:31:47.443 に答える