問題タブ [maven-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - Maven 拡張機能のデフォルト プロパティを変更する方法
このような pom.xml を持つプロジェクトをコンパイルできるように、javascript プロジェクトのライフサイクルを実装する maven プラグイン (拡張機能) を作成したいと考えています。
ライフサイクルを定義するファイルを使用してプラグインの作成に成功したcomponents.xml
ので、さまざまなフェーズで独自の Mojo を呼び出すことができます。しかし、いくつかのデフォルト値を変更できる限り、デフォルトのモジョで十分なフェーズがいくつかあります。たとえばoutputDirectory
、Maven リソース プラグインにカスタムを指定して、JavaScript リソースがtarget/classes/script-resources
ではなく にコピーされるようにしtarget/classes
ます。ResourcesMojo クラス全体をコピーしてプロパティのデフォルト値を変更せずに、プラグインでこれを行うことはできますか?
maven - Mavenの「extensions」パラメーターの正確な意味は何ですか
プラグインのextensionsパラメーターでは次のように意味します。
maven - 指定されたプロファイルでのみ maven3 拡張機能を有効にする
ビルド情報を出力する Maven 3 ビルドで使用する拡張機能があります。少し冗長なので、一部のビルド プロファイルでのみ実行したいと思います。ただし、プロファイルでは許可されず<extensions>
、メインでのみ許可されます。<build>
だから私の質問は2つあります。まず、拡張機能を特定のプロファイルでのみ実行するように制限する方法は既にありpom.xml
ますか? 第二に、そうでない場合、これをどのように実装する必要がありますか?
私の最初の考えは、それを呼び出しmavenSession.getCurrentProject().getActiveProfiles()
て、拡張機能を実行したいプロファイルのリストと比較することでした。しかし、どうにかしてそこにプロファイル情報を渡す必要があります..pom.xml
コマンドラインからではなく、.
java - 継承ではなく構成によって Maven プラグイン構成をインポートします。ビルド拡張機能で実行できますか?
継承ではなく構成によって Maven プラグイン構成をインポートします。ビルド拡張機能で実行できますか?
私は 3 年以上 maven を使用してきましたが、常に私を悩ませてきた欠点が 1 つあります。すでにその解決策を見つける時が来ました。
問題:
「男の子」、「女の子」、「子供」の3人の子供を持つ「パパ」mavenモジュールがあります。これらの各子には、デフォルトの「クリーン インストール」ビルド用の独自のプラグイン構成セットが必要です。その構成を子供のポンに入れたくありません。後で再利用できる場所に置きたいと思います。
そのためにプロファイルを使用してみましたが、うまくいきません - MNG-5127に関する私のコメントと添付のプロジェクトを参照してください
daddy.zipプロジェクトに次の変更を加えることで、より良い解決策を見つけました。
1) パパの pom で、[profiles] を [phase]none[/phase] を持つプラグイン実行に置き換えました
2)同じポンで、カスタムビルド拡張機能を追加しました
3) 拡張機能は、プロジェクトのプロパティ値に基づいてプラグインの実行フェーズを変更します。以下のJavaコード。
4) 子モジュール poms は、ビルド拡張機能に何をすべきかを伝えるプロパティを定義するだけで済みます。たとえば、boy プロジェクトは次のようになります。
このようにパパ プロジェクトで mvn clean install を呼び出すと、目的の結果が出力されます。男の子は男の子、女の子は女の子、両方とも子供になります。
問題は、もっとうまくやれるかどうかです。
理論的には、ビルド拡張機能は、男の子、女の子、子供のビルド構成定義をさまざまな poms からインポートできます...そうですか? これは、[ビルド] 構成を pom にインポートするための巧妙でエレガントな方法です。
利用可能な Maven プラグインはたくさんありますが、ビルドにプラグインできる利用可能なビルド拡張機能は (実際には) あまり多くありません。これに役立つビルド拡張機能を知っている人はいますか?
アップデート
これは実際の答えではありませんが、私の問題に対する実際の解決策なので、ここに行きます。
継承ではなく構成によって Maven プラグイン構成をインポートします。ビルド拡張機能で実行できますか?
おそらく
これに役立つビルド拡張機能を知っている人はいますか?
1つもないと確信している
ただし、プロファイルを使用した解決策があります。
秘訣は、ファイルベースのプロファイルアクティベーションが実際に継承されることです(ただし、maven3でのみ機能します)
MNG-5127に添付されているdaddy2.zipをご覧ください
プロファイルを使用すると、いくつかのプラグイン実行フェーズを変更するよりも柔軟性が高くなるため、ビルド拡張戦略を使用するよりもはるかに優れています。
更新 2
これに役立つビルド拡張機能を知っている人はいますか?
1つもないと確信している
実はあるんです!
MNG-5102 (by Maurizio Pillitu) にプロジェクトとして添付されています。テストはしていませんが、提案されたビルド拡張機能に非常に近いものを実行しているようです。
java - Maven 拡張機能の依存関係を指定する
プロジェクト用に構成しようとしていますorg.springframework.build:aws-maven:jar:4.2.0.RELEASE
が、次の問題で立ち往生しています: プラグインの依存関係の一部が を必要としているようですがorg.codehaus.jackson:jackson-core-asl
、見つかりません。失敗:
このアーティファクトを含むリポジトリを追加し、メイン プロジェクトへの依存関係として追加しようとしました (ところで、実際には必要ありません)。役に立ちません。
これは単なるプラグインではなく拡張機能であるため、そこに依存関係を追加することはできません:
私が理解しているように、ビルド拡張機能はメイン ブロックからの依存関係を使用しません。この依存関係を拡張に指定するにはどうすればよいですか?
maven - Tycho / Mavenの構成の問題:「Tychoビルド拡張機能が構成されていません」
Tychoを使用してプロジェクトのMavenビルド環境をセットアップする方法について、Vogellaのチュートリアル(http://www.vogella.com/articles/EclipseTycho/article.html )に従っています。私のプロジェクトはすでにいくつかのプラグイン、機能、更新サイトでかなり大きくなっていますが、なんとかうまく機能し、チュートリアルを最後まで実行しましmvn clean
た。私が今直面している問題は紛らわしいです。私は一貫して次のエラーを受け取ります:mvn compile
mvn install
このスタックトレースからプラグインのリストを削除しました。それらはすべてスキップされました。親は失敗しました。
原因の根本は、ターゲットプラットフォームがどういうわけか未定義であることがわかります。しかし、Eclipse wiki(http://wiki.eclipse.org/Tycho/Target_Platform)でターゲットプラットフォームを検索すると、次のように表示されます。
Tychoが特定のp2リポジトリからのプロジェクトの依存関係を解決できるようにするには、そのリポジトリをPOMのセクションに追加します...ターゲットプラットフォームに関しては、これは、このように指定されたp2リポジトリのコンテンツ全体を意味します。ターゲットプラットフォームの一部になります。
POMにそのセクションがあります。実際、これが私の親POMの完全なコンテンツです(チュートリアルに従って別の一般的なプロジェクトで定義されています)。すべてのモジュールの宣言のみを省略しました。
私は何かを逃したことがありますか?ドキュメントがターゲットプラットフォームとして何を扱っているかを定義したようです。私も正しい問題を見ていますか?
maven - 「wagon-ssh」で Maven プロジェクトをビルド中に「拡張機能を初期化できません」エラー
wagon-ssh 拡張機能を使用して Maven (バージョン 2.2.1) プロジェクトをビルドすると、以下のエラーが発生する
pom.xml:
拡張コンポーネント記述子の役割を初期化できません: 'com.jcraft.jsch.UIKeyboardInteractive'、実装: 'org.apache.maven.wagon.providers.ssh.jsch.interactive.PrompterUIKeyboardInteractive'、役割のヒント: 'default' にはヒントがあります。しかし、そうでない他の実装があります
提案/ヒントは非常に高く評価されています。