問題タブ [maven-war-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 ear パッケージングの戦略、依存プロジェクトの構築
さまざまな提案を見た後でも、ear ファイルの成功した Maven 戦略はまだないようです。
私はこの構造を持っています:
親 pom.xml: ...
(ejb/war/ear はこれを親として持つ)
私はmaven-war-plugin / maven-ejb-plugin / maven-ear-pluginを使用しています。
EAR モジュールには依存関係として ejb/war プロジェクトがあります。
さて、耳を作りたいなら、まず戦争を作る必要があります。そうでない場合は、最新バージョンではありません。
より良い方法はありますか?
編集:参考までに、「実行」をクリックするだけでプロジェクトを実行するための有効なソリューションを得るために、netbeans バグを開きました: http://netbeans.org/bugzilla/show_bug.cgi?id=218807
java - Maven war オーバーレイへのパッチの適用
現在、いくつかのクラスとリソース ファイルを war に追加する Maven war オーバーレイ プロジェクトがあります。また、いくつかのファイルを変更する必要があります。ファイルをプロジェクトにコピーしてそこで変更を行う代わりに、Maven パッチ プラグインを使用します。ただし、war オーバーレイは 1 つの Maven ビルド フェーズ (パッケージ) 内で発生するようであるため、適切なタイミングでパッチを適用する方法はないようです。
Maven を使用して war ファイルにパッチを適用する簡単な解決策はありますか?
maven - Maven war-inplace: クリーンなクラスと lib フォルダー
maven war:inplace を実行すると、すべてのクラスとライブラリがプロジェクトの webapp フォルダーにコピーされます。ライブラリのバージョン番号を更新すると、lib フォルダーにそれぞれの jar の 2 つのバージョン (古いバージョンと新しいバージョン) が作成されます。
新しいライブラリがコピーされる前に lib フォルダをクリーンアップする方法はありますか?
(「mvn clean install war:inplace」は仕事をしません...)
maven - war がパッケージ化される前に、maven ビルド段階で ant タスクを実行しますか?
Web アプリケーションをデプロイするとき、UI リソースのいくつかの変数を更新し、いくつかのアセットを解凍し、いくつかのファイルを連結する必要があります。現在、これは ant タスクによって実現されています。このようなものを使用して、mavenビルドプロセスでこのタスクを実行しようとしています...
ファイルがまだターゲットディレクトリにコピーされていないため、上記は失敗します。フェーズを「パッケージ」に設定すると、ant タスクは正常に実行され、すべてのファイルが作成/修正されますが、ant ターゲットが実行される前に .war が既にビルドされているため、役に立ちません。
基本的に、準備パッケージ フェーズの終わり近くで ant ターゲットを実行する必要があります。
ライフサイクル リファレンスを調べたところ、より詳細な目標を antrun プラグインに公開する方法がわかりません。
何か案は?
eclipse - Mavenビルド中にWARファイル内のファイルを上書きするにはどうすればよいですか?
Eclipse(より正確にはMyEclipse 10)で開発し、Maven3を使用してビルドするJavaWebアプリケーションプロジェクトがあります。
私は次のレイアウトを持っています(私の問題に関連するファイルのみを含みます:
ご覧のとおり、いくつかの構成ファイルを含めました。プロジェクト構造内の適切な場所にいる人、つまり内部src/main/resources
にsrc/main/webapp
いて、MyEclipseで作業するときに日常的に使用している人です。MyEclipseコネクターを使用して、デプロイメントを開発マシン上のTomcatインスタンスなどに自動的に更新できます。「サーバーの実行」をクリックするだけで、デバッグできます。実際には、このコンテキストでMavenを使用する必要はまったくありません。
次に、テストや本番環境などの別の環境用のリリースをビルドする場合は、実行するmvn -P test clean install
と、優れたWARがビルドされます。
私の目標は、最終的なWAR内の構成ファイルを。内の構成ファイルに置き換えることですsrc/config/{environment}/
。
私は自分のプロファイルを設定しましたpom.xml
:
次に、これらのリソースを(変数を使用して)指定されたプロファイルからenvironment
WAR内の正しい場所(またはWARに圧縮される一時フォルダー)にコピーしようとします。
「標準」リソースがこの後にディレクトリにコピーされることを除いて、これは機能しているように見えます。そのため、これらのファイルは上書きされます。だから私はいつも言うからのものの代わりに例えばlog4j.xml
からで終わるsrc/main/resources
src/main/configuration/prod/
Maven出力からの抽出:
最後の行でわかるように、からのものは後src/main/webapp
にコピーされるため、カスタムファイルが上書きされます:(
私の質問:Mavenに「アクティブ化されたプロファイルから」ファイルを使用させ、どういうわけか「自然な」ファイルを上書きする方法は?
performance - Maven戦争プラグインをスピードアップ
Mavenプラグインの動作は非常に遅いです。私のプロジェクトでは、webappフォルダーには15000近くの小さなファイル(画像、jsp、cssなど)があります。target/myProject-1.0.0
Mavenを使用してアセンブルすると、最初にすべてのファイルがディレクトリにコピーされ、次にそこmyProject-1.0.0.war
からファイルがビルドされます。コピープロセスには10分かかり、ビルドに.war
は2分かかります。
.war
私が見ているように、ファイルがwebappフォルダーから直接アセンブルされる場合、ビルドははるかに高速になる可能性があります。できますか?
java - 戦争の構築への依存を追加する
次のモジュールを含むMavenプロジェクトがあります:app
、、。私はmaven-war-pluginを使用してWebを構築します。今はに依存します。に依存します。app-impl
web
app-impl
app
web
app-impl
ただし、web
にのみ依存する必要がありますapp
。いくつかの魔法によって、maven-war-pluginはapp-impl
戦争に含まれるべきです。追加のMavenモジュールなしでそれを行うことはできますか?
maven - Maven で manifestEntries を共有できますか?
私のマスター POM には、 、 および<pluginManagement>
の構成を定義する場所があります。これらはそれぞれmaven-jar-plugin
maven-war-plugin
maven-ear-plugin
マニフェスト エントリのグループを共有して、新しいアイテムを 3 つの別々の場所に追加する必要がないようにする方法はありますか?
m2eclipse - maven-war-pluginエラーの回避策:アーティファクトのファイルをコピーできませんでした
ワークスペース内の別のMavenプロジェクトに依存するEclipseの単純なMavenWebアプリケーションプロジェクトがある場合、エラーが発生します...
アーティファクトのファイルのコピーに失敗しました[group:artifact:jar:version:compile](org.apache.maven.plugins:maven-war-plugin:2.3:exploded:make-war-exploded:compile)pom.xml / Project line xxMavenビルドの問題
オンラインのいくつかの場所で言及されています(どの部分が壊れているか、どのように修正するかなどについて、Mavenチーム間で議論されています)-私が見つけた唯一の回避策は「ワークスペースの解決を無効にする」です。ええと、わかりました。でも、それが私のワークスペースにそのプロジェクトがある理由です。そのため、毎回インストールしなくても、プロジェクトを編集して変更を取得できます。
最近、mavenを使用するように変換したので、あまり経験がありません。SVNには、同じ構成を使用してもエラーが発生しないプロジェクトがあります(これらは、ここにいないコンサルタントによって作成されました)。もう)。違いがわかりません-ほぼ同じpomsを使用し、異なるバージョンのeclipse / warプラグインを試し、ビルドヘルパー/ wtp統合を追加し、さまざまな方法でプロジェクトを作成し、eclipse構成ファイルを比較しました。私が理解できる唯一の違いは、それらがデプロイされており、自宅ではそれを行わないことです。
(ワークスペースの解決を無効にせずに)そのエラーを解消したいので、すべてのエラーを無視したり、実行するたびに続行を確認するダイアログを表示したりする必要はありません。それはおそらく私が見逃した/わからない単純なものです。
gwt - GWT 2.5.0 mvn インストール エラー "再バインド結果クラスでなければならない」
問題: gwt -maven-pluginmvn install
でビルドした GWT 2.5.0 プロジェクトを実行すると、エラーが発生します。Rebind result 'c3gw.fwk.gui.client.ClientFactory' must be a class
これは私の pom.xml のスニペットです:
これは私の C3gwGui.gwt.xml のスニペットです:
これは、エラーがスローされる行のスニペットです。
ClientFactory はインターフェースであり、ClientFactoryImpl はインターフェースを実装します。
これまでにわかったこと:コードは、デバッグを実行すると Eclipse で完全に機能しますが、mvn install を実行すると機能しません。gwt-maven-plugin で利用可能なすべての目標 (クリーン、コンパイル、ソースなど) を実行しましたが、それらはすべて機能するため、この時点で得られる唯一の結論は、maven-war 中に何かが起こっているということです。 -plugin フェーズまたはそれ以降。
また、次のGoogleチュートリアルからこのコードの基本を取得しました。サンプルプロジェクトも機能すると仮定すると、インターフェイスを使用するため、機能するはずです。