問題タブ [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.
maven - プロファイル プロパティを使用した Maven リソース フィルタリング
次の pom.xml があります。
activation
の要素profile
がコメントアウトされていることに注意してください
私はまた、以下を持っていますsrc/main/java/application.properties
したがって、Maven が行うことを期待しているのは、開発プロファイルがアクティブ化されていない限り、単純に に${foo.bar}
置き換えることです。BazBat
${foo.bar}
Development
実行するmvn package
と、値が に設定されBazBat
ます。よし、リソース フィルタリングは期待どおりに機能している。
ただし、実行するmvn package -P Development
と値が設定されますBazBat
さらに混乱させるためactivation
に、プロファイルの要素のコメントを外して実行mvn package
すると、次のように設定さ${foo.bar}
れますDevelopment
アクティブなプロファイル名を出力するように実行しましたが、上記の両方のシナリオで開発プロファイルがアクティブであると表示されていますが、フラグが設定されmvn help:active-profiles package
ていないとフィルタリングは機能しません。activeByDefault
総括する:
- プロファイルが
activeByDefault
- コマンドラインスイッチを介してプロファイルをアクティブ化すると、Maven はプロパティをオーバーライドしません
何が起こっている?
私の環境:
更新: 最新の Maven (3.3.3) にアップグレードしましたが、問題は解決しません。私の新しい環境:
maven - Maven リソース フィルタリング - プロパティ インジェクションが必要なファイルを明示的に指定する
Maven リソース プラグインを使用すると、Maven プロファイル プロパティの挿入中に特定のファイルを柔軟に除外できますか?
- 注入段階からだけで、ファイルをアセンブリから除外したくありません。
私が取り組んでいるプロジェクトでは、各展開環境の Settings.xml で一意の Maven プロファイル (および対応するプロパティ) を定義しています。プロジェクトがビルドされると、次の手順が発生します
- プロジェクト POM は、リソース フォルダーをリソース フィルターを適用するターゲットとして定義します。
- リソース フォルダーには、.XML および .PROPERTIES ファイルが含まれます。
- mvn:deploy 中、Maven は期待どおりに Profile プロパティを .PROPERTIES ファイルに挿入します。
- Maven はまた、Profile プロパティを .XML ファイルに挿入します。これは望ましくない動作です (これらのファイルには、アプリケーションのデプロイ中にプロジェクトが柔軟に値を挿入できるようにするプレースホルダーが含まれています)。
リソース プラグインには、包含オプションと除外オプションを定義する構成オプションがありますが、除外オプションを選択すると、指定したファイルがアセンブリ フォルダーから除外されますが、これは望ましくありません。
どのファイルのプレースホルダーを置き換える必要があるかをMavenに伝えることは可能ですか?
maven - Maven 設定と POM で同じプロファイル名
これは、Maven のビルド プロファイルを使用する最初の日です。次のファイルにプロファイルがあります。
- pom.xml
- Maven 設定 (%USER_HOME%/.m2/settings.xml)
好奇心のために、同じ id(local_deploy) を持つ両方のファイルに 1 つのプロファイルを作成しました。違いは 1 つのプロパティ (例: tomcat.pwd) だけです。
POM でのプロファイルは次のようになります。
Maven 設定のプロファイルは次のようになります。
Maven 設定のプロファイルは に記載されていないことに注意してください<activeProfiles>
。
次のコマンドを使用してアプリケーションをインストールしようとすると
アプリケーションがデプロイされ、コンソールに次の出力が表示されます。
私はこのドキュメントを読んでいますが、それは言っています
したがって、Maven 設定のパスワードが正しくないために、デプロイが失敗したはずだと思います。ここで何が欠けていますか?
java - Maven Java プロジェクトで実行時にアクティブ化されたプロファイル名のリストを取得する
JUnit テストの実行時にアクティブ化されたプロファイルを使用できるようにする必要があります。次のような方法があるかどうか疑問に思っていました。
または他の相対的な方法...
${project.profiles[0].id}
何とか buを使用するオプションがあることに気付きましたが、機能していません。
何か案は?
java - Maven ビルド プロファイルのアクティブ化
関連するトピックがいくつかあることは知っていますが、それでもその方法を理解できません。
私はmavenを学んでおり、現在ビルドプロファイルを作成中です。マシンに現在インストールされているJavaバージョンをmavenに自動検出させたい。(jdk7)または homeを使用するオフィスで働いているとしましょう。 環境 (オフィス/ホーム) に関係なく、 pom.xml の要素と要素を自動検出する(jdk8)
必要があります。について読んだことがありますが、目的を完全には理解できません。<source>
<target>
maven-compiler-plugin
java -version
activation
maven - Netbeans および Maven マルチモジュール プロジェクトでプロファイルを使用して Windows および Linux 用にビルドする
Java 用の NetBeans の「ワークスペース」には、いくつかのプロジェクトがあります (すべてのディレクトリは同じレベルにあります)。
- 主要
- MainExecutable (
main(String[] args)
デバッグ用のメソッドを含む) - JNILibrary (Linux でのみ使用可能)
- さらに10件のプロジェクト
そして、JNILibrary\pom.xmlのプロファイルを介して Windows 用の「スタブ」(いくつかの空のメソッドのみ) ソース コードを提供することにより、Windows でデバッグ可能にしようとしています。
その後、NetBeans でJNILibraryプロジェクトを右クリックすると、Set Configuration -> linux
またはを選択できます。Set Configuration -> Windows
残念ながら、MainExecutableプロジェクトをデバッグしようとすると、まだ Linux バージョンが (ビルドおよび) 起動され、Windows PC での起動に失敗します。
誰かが私の問題を解決する方法について正しい方向を示してもらえますか?
以下はMain\pom.xmlからの抜粋です。
そして、 MainExecutable\pom.xmlからの抜粋:
maven - プロファイル内でプラグインの目標を実行する
このプロファイルにはさらに多くのものがありますが、実行したいものだけを含めました。この特定のプラグインのこの特定の目標をどのように実行できますか?
私は試しmvn exec:exec
ましたが、私はこれを得る
[エラー] プロジェクト ando でゴール org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (default-cli) を実行できませんでした: ゴール org.codehaus.mojo:exec-maven- のパラメーター 'executable' plugin:1.3.2:exec が見つからないか無効です -> [ヘルプ 1]
また、エラー出力はバージョン1.3.2
を示していますが、私は使用して1.4.0
います。