0

Maven Central からシステム ツールとして jar をダウンロードしてインストールするプラグインを作成しようとしています。だから私は自分のラインが次のようになりたい

mvn install-plugin:install org.chaschev:cap4j:1.0

ルビーに似てる

gem install capistrano

このプラグインは、JAR から作成するショートカットに関する必要なすべての情報を収集します。つまり、この jar には、インストール インターフェイスを実装するクラスが含まれます。

release:prepareMavenは、リリース プラグインをダウンロードして実行する必要があるようなコマンドを実行するために、どのように理解しますか? これを行うためのより良い/他の方法はありますか?

4

2 に答える 2

1

コマンドラインのプラグイン/ゴールとプラグインの実装との関係がどのように定義されているということですか? すると答えはplugin.xmlです。リリース プラグインについては、plugin.xml を参照してください。例: maven-release-plugin-2.0.jar:

<goalPrefix>release</goalPrefix>
...
  <mojos>
    <mojo>
      <goal>help</goal>
      ...
    <mojo>
      <goal>prepare</goal>
      ...

それとも、どのプラグインが利用可能かを Maven がどのように検出するのかということですか? 答えは次のとおりです。

  • プラグインが検索されるデフォルトのグループが 2 つありますorg.apache.maven.pluginsorg.codehaus.mojo
  • ${prefix}-maven-plugin独自のプラグインの場合、name を使用したい場合があります。cap4j-maven-plugin
  • あなたの名前を保持することができますcap4jが、プラグインの説明をPOMの下に置きます<plugins>
  • ビルドを他のマシンで動作させたい場合は<pluginRepositories>、POM または settings.xml でプラグイン リポジトリを指定する必要があります。
于 2013-09-29T15:48:12.620 に答える
0

独自のプロジェクトにデフォルトの Maven グループを使用するのは良くありません。代わりに、次のようにプラグインに独自のグループを定義します。

<pluginGroups>
  <pluginGroup>org.chaschev</pluginGroup>
</pluginGroups>

プラグインの名前を からcap4jに変更しますcap4j-maven-plugin。その後、Maven は POM でさらに変更を加えることなくプラグインを検出します。

代わりに、<pluginGroups>POM に以下を追加するだけです。

<plugins>
  <plugin>
    <groupId>org.chaschev</groupId>
    <artifactId>cap4j</artifactId>
    <version>...</version>
    <configuration>
      ...
    </configuration>
  </plugin>
  ...
</plugins>
于 2013-09-29T16:12:56.703 に答える