たぶん私は才能がなかったかもしれません、そして、私が最初にMavenに会ったとき、私はさまざまな未知のチュートリアルに混乱しました。私の使用では、Mavenの機能のほとんどが想像したほど難しくないことがわかりました。
この記事は、Mavenの初心者向けで、Mavenをできるだけ早く理解し、それがもたらす一連の利点を享受できるようにしたいと考えています。
[簡単な質問]
説明をする前に、簡単な質問をしてください。
Eclipseの下で2つのJavaプロジェクトを開発し、それらをAとBと呼ぶ場合、プロジェクトAの一部の機能はプロジェクトBの特定のクラスに依存します。この依存関係を維持する方法は?
Mavenをパッケージ化したプロジェクトBをJARとして使用する前に、これを行い、プロジェクトAのライブラリの下にBのJARファイルをインポートしました。
これには明らかな欠点があります。
1.開発プロセス中にBのバグが見つかった場合、プロジェクトAのためにBを再パッケージ化および再コンパイルする必要があります。
2。プロジェクトAの開発をコラボレーションする場合、正常に実行できることを確認するために、BをAにパッケージ化するか、Bのようなbを公開することを選択し、開発者に使用方法を通知します。明らかに、両方の方法はあまり良くありません。前者はリソースの無駄を引き起こす可能性があります(たとえば、開発者は、地元に保存されているBに依存している他のプロジェクトを開発している可能性があります)、後者はプロジェクトの通常の運用にリスクをもたらします(作業がマニュアル作業に引き渡された場合、一定の故障率をもたらすようになります)。
したがって、この方法でプロジェクト間の依存関係を手動で制御することは、明らかに「悪い」アプローチです。
[Mavenの紹介]
著者の意見によれば、Mavenのコア機能は、プロジェクト間の依存関係を合理的に説明することです。
すべてのMavenプロジェクトには、pom.xmlという名前のファイルが含まれています。これは、独自の<groupid> <ArtifActID> <バージョン>およびその他のフィールドを記録しています。これらのフィールドは、Mavenプロジェクトを作成するときに記入され、Mavenはそれらに基づいてプロジェクトを見つけます。
POMのもう1つのキータグは<Dependencies>です。これにはいくつかの<依存関係>タグを含めることができます。<dependency>の下には、<groupId> <artifactid> <バージョン>などの依存フィールドがあります。
典型的なpom.xml [Project Luajavaから]:
<Project XMLNS = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation = "http://maven.apach/4.0. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> org.keplerproject </groupid> <artifactid> luajava </artifactid> <バージョン<name> luajava </name> <url> http://maven.apache.org </url> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> </properties> <build> <bublugins> <braging.maven.maven.maven.maven.plugins> <artifactid> maven-compiler-plugin </artifactid> <version> 2.0.2 </version> <configuration> <source> 1.7 </source> <target> 1.7 </target> </configuration> </plugin> </plugins> </build> <redencies> <septency> <groupid </groupid> <artificid> <artifactid> </groupid> </groupId> <バージョン> 3.8.1 </version> <scope>テスト</scope> </dependency> </project>
[メイブン図書館]
AとBプロジェクトを今すぐ例として取り、プロジェクトAのPOMファイルに<Dependency>を書き込み、MavenはワークスペースでBプロジェクトを見つけて依存関係を作成します。この時点で、プロジェクトAはプロジェクトBのクラスリソースに直接アクセスでき、プロジェクトBのブレークポイントセットは、Aのデバッグ中に引き続きヒットします。
ワークスペース依存関係の関連付けに加えて、Mavenはプロジェクトをリモート画像に関連付けることもできます。デフォルトでは、ワークスペースに対応するプロジェクトレコードがない場合、Mavenは中央リポジトリに接続して検索します。見つかった場合、プロジェクトをローカルライブラリにダウンロードします(Windowsのローカルライブラリは、ユーザードキュメントの.m2ディレクトリにあります)。これは非常に便利な機能です。追加のJARパッケージサポートが必要な場合、手動でダウンロードして導入する必要はなくなりました。プロジェクトに対応するPOMの適切な場所に対応する依存関係フィールドを貼り付け、残りをMavenにして完了する必要があります。
[例]
それでは、必要なプロジェクトのGroupIDなどのフィールドをどのように知るのでしょうか?
一般的に言えば、公式プロジェクトがMavenをサポートしている場合、通常、コピーのためにそのページに依存関係フィールドがありますが、Mavenがサポートされているが、従属フィールドは与えられない状況もあります。他のプロジェクトのMaven機能は第三者によって維持されており、公式チャネルからMavenのサポートを得ることは困難です。
したがって、依存関係フィールドをクエリするための優先ソリューションは、Maven Search Serviceを使用して検索することです。
ここでは、住所をお勧めします:mvnrepository.com
以下は、Eclipseを使用してMySQLJDBCドライバーを関連付ける例です。この前に、それがhelp-> abouteclipseでMavenをサポートしていることを確認してください:
Eclipseの公式バージョンでは、Mavenのサポートはすでに組み込まれています。バージョンが古い場合は、Mavenプラグインをインストールできます。
まず、新しいMavenプロジェクト、new-> project-> mavenproject-> createAseaSimpleProject(SkiparchEtypeselection)を作成しましょう。
以下が最も重要なステップです。このプロジェクトのGroupIDなどの依存関係フィールドに入力します。ここに記入されたフィールドは、他のプロジェクトに依存している場合に使用されます。未使用の部品はオプションです:
その後、MVNRepository.comで「MySQL JDBC」を検索しました
まもなく結果を見つけてクリックして詳細なバージョン情報を表示しました。
複数のバージョンのリストとMySQL JDBCの使用法を次に示します。ここでは、2番目の新しいバージョン5.1.34を選択します。
Mavenボックスに内容をコピーし、POMの<依存関係>に書き込みます。
<Project XMLNS = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation = "http://maven.apach/4.0. http://maven.apache.org/xsd/maven-4.0.0.0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> com.test </groupid> <artifactid> maventest </artifactid> <バージョン> 0.0.1-snapshot </version < <GroupId> mysql </groupId> <artifactid> mysql-connector-java </artifactid> <version> 5.1.34 </version> </dependency> </dependencies> </project>
進行状況の読み取りバーが終わった後、プロジェクトにはより多くの依存関係があることがわかり、紹介したJDBCドライバーパッケージを見つけることができます。
[その他の機能]
1。ミラーソース
Maven Central Warehouseの負荷が比較的大きく、中国にないことは明らかです。そのため、速度は非常に遅く、依存関係が見つからない場合があります。したがって、特に小規模なチーム開発の機会では、Maven Private Serverを構築すると、効率が大幅に向上します。これがMaven Image Buildingツールです:nexus:http://www.sonatype.org/nexus/
それを使用して、プライベートMaven画像ソースをすばやく簡単に構築し、Maven settings.xmlで構成します。
2。SRCソースコードの怠zyなダウンロード
時々、プロジェクトに依存するソースファイルを参照する必要があります。この時点で、クラスファイルを直接ダブルクリックするようにすることができます。 Maven画像ソースにソースファイルがある場合、ローカルエリアに自動的にダウンロードされ、Eclipseは自動的にロードおよび表示されます。
3.パラメーター構成をコンパイルします
著者はEclipselunaバージョンを使用しています。 MavenのデフォルトのJavaコンパイルバージョンは1.5です。 POMでコンパイルバージョンを指定して1.7に改善できます(Luajavapomのビルドタグを参照)。さらに、これらの設定も読み取り、Jenkinsの連続統合などの自動化ツールによって適切に構成されます。
要約します
上記は、Mavenをすばやく理解することです。私はそれが誰にでも役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!