問題タブ [maven-3]
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-3 - Mavenを使用して$/user / .m2/repositoryパスにデフォルトのsettings.xmlで作成されない
私は以下のコマンドを適切に動作させてみました
HelloWorld.java
簡単なプログラムをコンパイルしようとしたら。それは私に以下のエラーを与えます...
誰かが適切な解決策で私を更新してください。
maven-2 - Maven のバージョンが異なると、余分なライブラリが WAR ファイルに含まれる
Maven を使用して tomcat サーバーにデプロイする war ファイルを作成しようとしていますが、war ファイルの作成時に奇妙な動作に気付きました。
プロジェクト フォルダーからコマンドを実行する場合:mvn clean compile package -DskipTests
- Maven バージョン 3.0 は 12.079MB の war ファイルを生成します (WEB-INF/lib フォルダーに 49 個の jar ファイル)
- Maven バージョン 3.0 beta1 は 8.7MB の war ファイルを生成します (WEB-INF/lib フォルダーに 31 個の jar ファイル)
- Maven バージョン 2.11 は 2.3MB の war ファイルを生成します (WEB-INF/lib フォルダーに 3 つの jar ファイル)
余分な jar ファイルがプロジェクトに含まれる原因は何ですか? バージョン 2.11 を使用してプロジェクトをビルドすると、過去に問題なく動作したため、おそらくそれらは必要ありません。
java - Maven 依存関係プラグインをプログラムで呼び出す方法
プログラムで maven-dependency-plugin を呼び出そうとしています。私はmaven 3バージョンを使用しています。問題は、pluginManager.executeMojo(session, execution) から呼び出すと、次のエラー メッセージが表示されることです。
私が知っているように、maven 依存関係プラグインの unpack ゴールに必要な唯一のパラメーターは、artifactItems です。PluginExecution.setConfiguration() メソッドを使用してプラグイン構成を設定します。このプラグイン構成が正しく設定されていないようです。この例外がスローされる理由はわかりますか?
私が使用している構成は次のとおりです。
ありがとう
私の方から一つ訂正。使用する Maven のバージョンは Maven 3.0 ではなく、Maven 3.0-beta-1 です。BuildPluginManager.loadPlugin()
バージョン 3.0-beta-1 には 2 つの引数があり、バージョン 3.0 の同じメソッドには 3 つあることがわかります。Maven 3.0またはmaven 3.0-beta-1を使用してプログラムでmavenプラグインを呼び出そうとした人はいますか? 私はまだmaven 3.0-beta-1でそれを呼び出そうとしていますが、それでも上に貼り付けたのと同じ例外を返します.
java - 1 つのフェーズで実行を注文する方法は?
<execution>
同じ Phase に2 つの が接続されていdeploy
ます。最初の実行はtomcat:redeploy
で、2 番目の実行はアプリケーションが実際に機能することを検証するために運用サーバーに HTTP 要求を行うカスタム実行です。
この特定の順序でそれらを実行するようにmavenに指示するにはどうすればよいですか?
maven - maven3に切り替える
maven2 にはいくつかのエンタープライズ プロジェクトがありますが、今すぐ maven 3 に切り替えるのは良い考えだと思いますか?
移行は難しくないと聞いていますが、並列ビルドを使用しない限り、大きな改善はありません。しかし、私たちのビルド マシンはすでにほとんど詰まっているため、使用できないと思います。
誰かが問題や大きな改善を経験しましたか?
maven-2 - 「オプション」および「提供」スコープを使用して、GradleプロジェクトをMavenリポジトリに公開するにはどうすればよいですか?
GradleをMavenリポジトリにデプロイして、それを実行するために必要なPOMを自動的に生成する方法がわかります。これは、私がtrueに設定したり、提供したりする依存関係に対してどのようになりますか。
maven-2 - Mavenログファイルの構成
Mavenビルドのロギングを構成するにはどうすればよいですか?Mavenが生成するログは、各ログステートメントのタイムスタンプなどの十分な情報を提供していません。Mavenが使用するログ構成ファイルはどこ/何ですか?
java - maven-3 のタイムスタンプ付きスナップショットを効率的に処理するにはどうすればよいですか?
maven-3 がスナップショット アーティファクトの <uniqueVersion>false</uniqueVersion> のサポートを削除したため、タイムスタンプ付きの SNAPSHOTS を使用する必要があるようです。特に、maven 3 を内部で使用する m2eclipse は影響を受けているようで、SNAPSHOTS が一意でない場合、update-snapshots は機能しません。
以前は、すべてのスナップショットを uniqueVersion=false に設定するのがベストプラクティスのようでした
現在、タイムスタンプ付きバージョンに切り替えることは大きな問題ではないようです。なぜなら、それらは定期的に古いスナップショットを削除できる中央のネクサス リポジトリによって管理されているからです。
問題は、ローカルの開発者ワークステーションです。彼らのローカル リポジトリは、独自のスナップショットですぐに非常に大きくなります。
この問題に対処するには?
現在、次の可能な解決策が表示されます。
- 定期的にリポジトリを削除するように開発者に依頼してください (これは、削除に時間がかかり、必要なものすべてをダウンロードするのにさらに時間がかかるため、多くのフラストレーションにつながります)
- ローカル リポジトリからすべてのSNAPSHOTディレクトリを削除するスクリプトをセットアップし、開発者にそのスクリプトを時々実行するように依頼します (最初のスクリプトよりはましですが、実行して現在のスナップショットをダウンロードするにはかなりの時間がかかります)。
- dependency:purge-local-repository プラグインを使用します (開いているファイルが原因で、Eclipse から実行すると問題が発生し、各プロジェクトから実行する必要があります)
- すべてのワークステーションに nexus をセットアップし、古いスナップショットを消去するジョブをセットアップします (最良の結果ですが、50 以上の nexus サーバーを維持したくありません。また、開発者ワークステーションのメモリは常に不足しています)。
- SNAPSHOTS の使用を完全に停止する
ローカル リポジトリがハード ドライブの容量をいっぱいにしないようにする最善の方法は何ですか?
アップデート:
動作を確認し、詳細情報を提供するために、小さな nexus サーバーをセットアップし、2 つのプロジェクト (a と b) をビルドして、次のことを試してください。
あ:
b:
さて、maven を使用して "a" で "deploy" を実行すると、
ローカルリポジトリで。デプロイ ターゲットを実行するたびに、新しいタイムスタンプ バージョンを使用します。nexusサーバーからスナップショットを更新しようとすると同じことが起こります(「a」プロジェクトを閉じ、ローカルリポジトリから削除し、「b」をビルドします)
大量のスナップショットが構築される環境 (ハドソン サーバーを考えてください...) では、ローカル リポジトリが古いバージョンですぐにいっぱいになります。
更新 2:
これが失敗する方法と理由をテストするために、さらにいくつかのテストを行いました。各テストはクリーンなすべてに対して実行されます (de/glauche はマシンと nexus の両方から削除されます)
- mvn deploy with maven 2.2.1 :
マシン A のローカル リポジトリには、snapshot.jar + snapshot-timestamp.jar が含まれています
BUT: nexus にはタイムスタンプ付きの jar が 1 つだけあり、メタデータは次のように読み取ります。
- m2eclipse(埋め込みm3最終)で(マシンBで)更新依存関係を実行します->ローカルリポジトリにはsnapshot.jar + snapshot-timestamp.jarがあります:(
- 外部maven 2.2.1でパッケージの目標を実行します->ローカルリポジトリにはsnapshot.jar + snapshot-timestamp.jarがあります:(
OK、次にmaven 3.0.1を試してください(プロジェクトaのすべての痕跡を削除した後)
マシン A のローカル リポジトリの方が見栄えが良く、タイムスタンプのない jar が 1 つだけ
nexus にタイムスタンプ付きの jar が 1 つだけある場合、メタデータは次のように読み取ります。
de.glauche a 0.0.1-SNAPSHOT
m2eclipse(埋め込みm3最終)で(マシンBで)更新依存関係を実行します->ローカルリポジトリにはsnapshot.jar + snapshot-timestamp.jarがあります:(
外部maven 2.2.1でパッケージの目標を実行します->ローカルリポジトリにはsnapshot.jar + snapshot-timestamp.jarがあります:(
つまり、要約すると、maven3 の「デプロイ」目標は 2.2.1 よりもうまく機能し、作成マシンのローカル リポジトリは問題ないように見えます。しかし、受信者は常に多くのタイムスタンプ付きのバージョンで終わります...
私は何を間違っていますか?
アップデート 3
他のさまざまな構成もテストしました。最初にネクサスをアーティファクトに置き換えます->同じ動作。次に、Linux Maven 3 クライアントを使用して、リポジトリ マネージャーからスナップショットをダウンロードします -> ローカル リポジトリにはまだタイムスタンプ付きのスナップショットがあります :(
api - Maven 3のワゴンを作成する方法はどこにありますか?
Mavenがバージョン2から3に変更されたため、iocコンテナーがplexusからgoogleguiceに変更されました。
したがって、Maven 2用の私のワゴン(sourceforgeファイルリリースエリアからアーティファクトをダウンロードするため)は、guiceを満たすためにMaven3に書き直す必要があります。プレクサスワゴンからギスワゴンに変更する方法を学ぶためのチュートリアル/APIの説明/はありますか?
testing - Mavenを使用して統合テストへのデータベースパスワードを取得する最良の方法は何ですか?
Maven と Spring を使用しており、現在、システム プロパティを使用してテストを実行し、この行でテストしています。
以前は環境変数を使用していましたが、maven でサポートが終了することを読んだので、それは悪い習慣である可能性があると考えました。