5

[更新]元の質問 (以下) が解決されました。私は電話する必要があります

mvn package appassembler:assemble

それ以外の

mvn package
mvn appassembler:assemble

質問: なぜ違いがあるのですか?

[オリジナル]

maven appassemblyr プラグインを使用して、すべての依存関係がアセンブルされたコマンド ライン ツールを作成しようとしています。ほとんど機能しますが、現在のモジュールの成果物がありません。すべての依存アーティファクトはリポジトリにコピーされ、bat のクラスパスには現在のアーティファクトが含まれます。構成は次のとおりです。

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>appassembler-maven-plugin</artifactId>
            <configuration>
                <platforms>
                    <platform>windows</platform>
                    <platform>unix</platform>
                </platforms>
                <programs>
                    <program>
                        <mainClass>${mainclass}</mainClass>
                        <name>huffman</name>
                    </program>
                </programs>
            </configuration>
        </plugin>

何か案は?

4

1 に答える 1

12

packageゴールはスタンドアロンで実行するようには設計されていませんが、ライフサイクルの一部として実行されます。そのため、ゴールによって作成されたものに関する情報をプロジェクト インスタンスに返すプロセスに依存します。これを 2 つの Maven コマンドとして実行すると、情報が失われます。

これらのコマンドのいずれかの代わりに、次のようなものを使用する必要があります。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>appassembler-maven-plugin</artifactId>
  <configuration>
   ... 
  </configuration>
  <executions>
    <execution>
      <id>assemble</id>
      <goals>
        <goal>assemble</goal>
      </goals>
    </execution>
  </executions>
</plugin>

これは、 を実行するだけmvn packageで、両方のステップが実行されることを意味します。

アプリアセンブラー部分をオプションにすることが意図されている場合は、代わりに上記と同じコードを使用してプロファイルに入れることができます。

于 2011-05-13T23:26:23.510 に答える