問題タブ [maven-resources-plugin]
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.
java - Maven コンパイル フェーズにバインドされたプラグインの実行が遅くなります。
2 つの Maven プラグインが構成されています。1 つは exec-maven-plugin で、コンパイル フェーズにバインドされます。もう 1 つの maven-resources-plugin は、prepare-package フェーズにバインドされています。リソースの前に exec を実行する必要がありますが、ビルド ライフサイクルではコンパイル フェーズがパッケージ準備フェーズの前に来るため、これは機能するはずだと考えました。私は何かが欠けているに違いない。
次に、2 つの構成を示します。
と:
これらが順不同で実行されるのはなぜですか?
java - Maven archetype - コロンによる速度エラー
リソースの 1 つにコロン文字 (':') が含まれているため、Maven アーキタイプの作成に問題があります。そのシンボルを含む Spring XML があります。
アーキタイプを起動すると、次のエラーが発生します。
アーキタイプの pom でエスケープ文字を設定してみました:
ただし、まだ機能しません。この場合:
エラーは次のとおりです。
そのコロンをエスケープする方法について何か考えはありますか?
java - getClassLoader().getResource("Configuration.xml").getPath() が jar 内で機能しない
リソース ディレクトリ (src/java/resources) を持つ Maven ベースの Java プロジェクトを作成しました。その中にいくつかの xml ファイルがあり、maven はそれらを target/classes/resources にコピーします (target/classes は私のクラスパスです)。
xml ファイルの内容を知るには、次を使用します。
Main.class.getClassLoader().getResource("Configuration.xml").getPath() は、xml のフル パス「c:\project...\Configuration.xml」を提供します。
これは intellij でうまく機能します。
しかし、プロジェクトをコンパイルしてjarファイルにパッケージ化すると、次のようになります。
これは、パス: \C:\project\target\project-12.50.14-SNAPSHOT-jar-with-dependencies .jar!\Configuration.xml を FileInputStream() のパラメーターにすることができないためです。
getResource() を getResourceAsStream() に置き換えることはできません。
jar とリソースを intellij で動作するように調整する方法が必要です。また、実行時にxmlリソースファイルのコンテンツを変更するため、jar内に保持することの別の問題です。
コードを変更する必要がなく、代わりにリソースのディレクトリ構造を変更したり、クラスパスを変更したり、コードが機能し続けるようなソリューションを提供してくれる人はいますか? ありがとう。
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に伝えることは可能ですか?
java - maven-resources-plugin でフィルタリングするときにバックスラッシュがエスケープされないようにする方法は?
Maven Resources Plugin を使用して、XML リソース ファイル内の XML スキーマの場所を設定したいと考えています。
これは、1 つのことを除いて機能します。置換されたパスには、1 つのブラックスラッシュではなく 2 つのバックスラッシュがあります。
2つの質問:
- これは、XSD ファイルを指定するための有効な形式ですか?
- 2 つのバックスラッシュの代わりに 1 つのバックスラッシュを使用するように Maven に指示する方法はありますか?
環境変数myxsdpath
はC:\mypath\myschema.xsd
. にはmaven-resources-plugin
、フィルタリングをオンにして含めるファイルを指定する以外に、特別な構成はありません。