問題タブ [maven-profiles]

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.

0 投票する
1 に答える
4544 参照

maven - Maven: サブモジュールでプロファイルを有効にするプロパティ

マルチモジュールの Maven プロジェクトがあり、JBoss 4 や JBoss 7 など、さまざまなプラットフォームで実行できます。platformプロパティを指定し、アーティファクトの分類子として使用し、プラットフォーム固有のプロファイルをアクティブ化します。次のようなサブモジュール:

これらのプロファイルでは、とりわけ、提供された依存関係のバージョンを指定します。たとえば、jboss 親 pom のインポートを行います。

そのため、プロパティをコマンドライン引数 ( -Dplatform=jboss71x) として指定すると、問題なく動作します。

しかし、プロパティが<properties>ルート pom.xml のセクションに設定されている場合 (親 pom にも設定しようとしました)、親 pom のバージョンが欠落しているように見えます:

Maven の最新バージョンは 3.2.1 です。

これが発生する理由と、コマンド ラインではなく pom.xml でこのプロパティ値を指定するにはどうすればよいでしょうか?

0 投票する
1 に答える
40 参照

java - 依存関係にmavenプロファイリングを使用するにはどうすればよいですか

Maven プロファイリングで依存クラスにプロファイルを使用する方法はありますか。

私の問題は、1 つの親の下に 2 つのプロジェクトがあることです。 product-core-wsおよびproduct-core

product-core-ws嘆かわしい Web サービスです。次のように、product-core 内に 2 つのプロファイルを作成したいと思います。

product-core-ws の場合clean install、指定されたプロファイルに従って依存関係が必要です

たとえば、私が使用する場合

mvn clean install -P one

、war ファイル内に product-core-one が必要です。

これは、 product-core-ws POM ファイルで直接実行できることを知っています。しかし、そのPOMでそれらを使用したくありません。product-coreで使用したい。

0 投票する
1 に答える
406 参照

java - Mavenでシステムプロパティをオーバーライドする

実稼働用とローカル テスト用の 2 つのプロファイルを持つ Web アプリケーションがあります。ビルドはmavenで実行されます。logback はロギングに使用されます

一部のログはファイルに書き込みます-問題は、本番環境ではTomcatを使用し、CATALINA_HOMEはサーバーに設定されていますが、ローカルではjettyを使用することが多いため、Tomcatが構成されていないことさえあります

したがって、本番環境では、次のようにログ ファイルに書き込みたいと思います: ${catalina.home}/logs/profiler.%d{yyyy-MM-dd}.log

この ${catalina.home} プロパティをオーバーライドするように設定するにはどうすればよいですか

  1. Maven から設定するにはどうすればよいですか (システム プロパティまたは Maven プロパティのみが必要ですか)
  2. 条件付きにしてもいいですか?(ローカル システムで設定されていない場合は、#1 で定義されたプロパティを使用します)

どうもありがとう!タチアナ。

0 投票する
5 に答える
5212 参照

maven - 2 つの Maven プロファイルのうち 1 つだけを強制的に使用するにはどうすればよいですか?

developer私は 2 つの個別のプロファイルを定義する Maven プロジェクトを持っていますrelease。これら 2 つのプロファイルのいずれかをいつでもアクティブにしたいのですが、両方をアクティブにすることはできません。両方が何らかの理由でアクティブ化されている場合、このビルドは意味がなく、失敗するはずです。どちらもアクティブ化されていない場合、このビルドも意味がなく、失敗するはずです。

これを達成するためにカスタムプラグインコードを書くことができると確信しており、そのようになる可能性が非常に高いですが、POM構成を使用してこれを達成することに興味があります(Maven Centralの既存のプラグインを使用する可能性があります)。

-P( --activate-profiles)を使用してプラグインをアクティブ化できるはずなので<activation>、プロパティを使用しても有効な解決策にはなりません。を使用したソリューションactiveByDefaultも有効ではありません。これactiveByDefaultは、一般に落とし穴として知られており、信頼性が低いためです (実際には、他のプロファイルをアクティブにしてactivateByDefault使用できなくなる可能性があります)。

あなたの提案は大歓迎です。

0 投票する
2 に答える
2291 参照

eclipse - Intellij IDEA で Maven プロファイルを自動的にアクティブ化する

プロジェクトがIntelliJ IDEAで開かれているときにmavenプロファイルを自動的にアクティブにする方法はありますか?

Eclipse の場合、これはアクティベーションに m2e.version プロパティを使用することで実行できます。IDEA にも同様の機能があるのではないかと考えました。

私が基本的に望んでいるのは、IDEA 用に別のビルド ディレクトリを用意することです。これは、IDE をいじらずにコマンドラインで mvn コマンドを実行するのに便利です。

0 投票する
1 に答える
14407 参照

java - 別のプロファイルがアクティブ化されていない場合は、Maven プロファイルをアクティブ化します

質問はMavenに関連しています:プロファイルBがアクティブ化されていない場合、プロファイルAのみをアクティブ化しますか? ですが、より具体的です。

次のいずれかを入力した場合:

次に、プロファイルを有効にします。specificProfile(+追加の指定されたプロファイル)

次のようなものを入力すると:

次に、 (+追加の指定されたプロファイル)を有効にします。defaultProfile

考え:

例:


私はこのようなことをしようとしました( pom.xmlで):

しかし、うまくいきません。

0 投票する
0 に答える
50 参照

maven - Maven での Ant の「ターゲット」の複製

この質問が寄せられていることは知っていますが、私が読んだすべての回答から必要なアドバイスが得られていないため、この回答がどこかに埋もれていて、見つからなかった場合は申し訳ありません。

Maven を使用してシステムをデプロイしていますが、完全なデプロイにはいくつかの手順が必要です。中間ステップに変更が加えられた場合、そのステップとそれに依存するステップのみを再デプロイする必要があります。この手順には時間がかかるため、すべてをゼロから展開するのは非常に困難です (現在、約 35 分)。(興味のある方は、リモート データベースのデプロイに続いて、2 つの基本 Docker イメージといくつかの Docker イメージ/コンテナーの作成とデプロイが行われます。)

展開手順は基本的に「scp でこれらのファイルをリモート サーバーにコピーし、sshexec 経由でこのコマンドを実行する」です。そのため、現在、これらのステップを含む長い単一の Ant タスクです。

Ant を適切に使用していれば、ターゲットを指定してそのように実行できます。私は Maven に精通していませんが、この種のプロセスを処理する適切な慣用的な方法を知りません。誰かがプロファイルの使用を提案しているのを見たことがありますが、これが最も適切な解決策のようですが、複製できなかったステップが 1 つあります。

ステップ 1、2、3、4、および 5 の 5 つのステップがあるとします。5 は 4 に依存し、4 は 3 に依存するなどです。それぞれにプロファイル ステップを設定し、mvn -P 1,2,3,4,5必要なものを取得するために実行できます。3 に変更するだけで を実行できますがmvn -P 3,4,5、私の問題は、さらに多くのステップがあり、それほど明確に番号が付けられていないことです。これは、製品を構築する際に他の開発者にとって現時点で移動中のターゲットです。

プロファイルなどを使用して、私と私の開発者が基本的に言う方法mvn -P stepXと、ステップ「x」で設定されたプロファイルが「プロファイル X、次に Y、次に Z を実行する」と言う方法はありますか?

どうもありがとう、ミッチ。