Mavenを使用して簡単なJavaプログラムを構築する方法

この記事は、Javaで最も単純なプログラムを作成できるが、それらを組み立てることができない人を対象としています。 これらの人々は、クラス、パッケージ、およびpublic static main(String [] argv)が必要な理由を既に知っていますが、開発環境なしでコードを実行しなかったため、誰がなぜ必要なのか理解していません。


コンソールからプログラムをアセンブルできないJavaプログラマーは雇われないことをすぐに言わなければなりません。これは一般に、アセンブリシステムの処理の技術を学ぶのに十分な理由です。 残りは、記事が専念する詳細です。


原則として、最小限のHelloWorldのアセンブリ以外の記事では説明しません。 また、省略可能なすべての技術的詳細を省略し、すべてを詳細に開示しようとします。


この記事の情報を使用するには、xml、環境変数、PATH環境変数が必要な理由、およびコンソールの使用方法を知る必要があります。


IDEなしでコードをビルドする理由


初心者デベロッパーにとって最初に生じる疑問は、開発環境なしでコードを構築する機能が実際にどのように役立つかということです。 結局のところ、それはすべての人のためにインストールされ、構成されています-これはプログラマーがプロジェクトに来たときに最初に行うことです。


答えは簡単です-ワークフローを適切に編成するために-コードを定期的に収集し、コンパイルが完了したことを確認してから、コードが機能していることを確認するためにテストを実行する必要があります。


もちろん、15分ごとにIDEを実行する特別な人を選択して上記の手順を実行することもできますが、これはおかしいです。そのようなことは自動的に行われるべきです。


開発環境なしでコードをコンパイルできることが切実に必要です。 この問題を解決するために、ビルドシステムと呼ばれるソフトウェアの特別なクラスがあります。


ビルドシステムとは何ですか?


アセンブリシステムは、他のプログラムをコンパイルするプログラムです。 ビルドシステムが入力のソースコードを受け取り、プログラムが出力を生成します。出力は既に開始できます。


コンパイラとどう違うのですか? 要するに、アセンブリシステムはその動作中にコンパイラを呼び出し、コンパイラはアセンブリシステムの存在を疑います。


それより長い場合、コンパイルに加えて、アセンブリには、コンパイラが単語からまったく適切でないタスクの全範囲が含まれます。


たとえば、プログラムが動作するためにいくつかの画像を必要とする場合、ビルドシステムのタスクは、それらの画像をプログラムとともにディレクトリに配置することです。 プログラムがサードパーティのライブラリを必要とする場合、それらをプログラムとともにディレクトリに配置するのはビルドシステムのタスクです。 まあなど。


そして、はい、プロジェクトの自動アセンブリが構成されて動作している場合、IDEを手動で構成する必要はありません-現代の開発環境はそれ自体でプロジェクトを生成し、ビルドシステムの構成がどこにあるかを示します。


全般的に、java、ant、maven、gradleの3つのシステムを構築します。 antは時代遅れで、最近では逆行するか、Anton Keksのような本当にクールな男のいずれかによって使用されます。gradleは依然として多くのヒップスターですが、mavenは業界標準です。 それを使用できるようにするには、単に必要です。


Mavenのインストール方法


Mavenは、目的のディレクトリにコピーするだけでインストールされます。インストーラーはありません。 ほとんどのコンソールユーティリティと同様に、使用するPATH環境変数にmaven / binディレクトリを追加するだけです。


つまり、Mavenがd:/ soft / mavenにある場合、d:/ soft / maven / binをPATHに追加する必要があります


それでも、mavenを使用するには、JDKを指すJAVA_HOME変数が必要です。 JDKがC:/ Program Files / Java / jdk1.8.0_05にある場合、この値はJAVA_HOMEに配置する必要があります。 最後にビンを追加する必要はありません。


その後、コンソールで書くことができます


mvn --version 

動作する場合、mavenがインストールされています。


Mavenのプロジェクトを構成する方法


Mavenの用語では、プログラムのソースコード、設定ファイル、およびプロジェクトと呼ばれるすべてを含むファイルのコレクション。 これらのファイルが置かれているディレクトリは、プロジェクトのルートディレクトリと呼ばれます。 将来、このディレクトリを<project>として指定します


ご存知のように、Javaプログラミング言語は、クラスを持つファイルの場所を指示するディレクトリ構造をプログラマに課します。 たとえば、com.app.HelloWorldというフルネームのクラスは、com / app / HelloWorld.javaファイルに含まれている必要があります。


Mavenはこの制限に別の制限を追加します-ソースコードは<project> / src / main / javaディレクトリにある必要があります。 つまり、クラスcom.app.HelloWorld mavenは<project> /src/main/java/com/app/HelloWorld.javaを検索します


これが、このHelloWorldの外観です。


 package com.app; public class HelloWorld { public static void main(String[] argv) { System.out.println("Hello world"); } } 

プロジェクトの説明を作成する方法


ただし、ファイルを予想されるMavenディレクトリ構造に入れるだけでは十分ではありません。 プロジェクトをビルドするには、xmlドキュメントの形式で記述する必要があります。 Mavenは、pom.xmlファイルのプロジェクトルートディレクトリで説明を検索します。


最小限のpom.xmlファイルの内容は次のようになります。 チュートリアルを進めるには、そのままにしておくことができます。何も変更しなければ、コードは正常にアセンブルされます。


 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>hello-world</artifactId> <version>1.0-SNAPSHOT</version> </project> 

ここで何が重要で、何を覚えておくべきですか? これらの3行を覚えておいてください。


 <groupId>com</groupId> <artifactId>hello-world</artifactId> <version>1.0-SNAPSHOT</version> 

これらの3行は、外の世界のプログラムの識別子です。 プログラムは、プロジェクトのアセンブリに関する作業の結果であり、Mavenの用語ではアーティファクトと呼ばれます。


アセンブリシステムの結果はプログラム自体だけでなく、ライブラリなどでもあるため、理解できないワードプログラムの代わりに、理解できないワードアーティファクトがここで使用されます。 groupId、artifactId、およびバージョンパラメータの組み合わせは、アーティファクトごとに一意です。 この組み合わせの一意性は、プログラマーが処理する必要があります。


技術的には、これらのパラメーターの値は任意である場合がありますが、それらを選択する場合は、適切な形式の規則に従うことを強くお勧めします。


groupId


groupIdには通常、パッケージの名前が含まれています。 パッケージの名前は、適切な形式の同じ規則に従って、パッケージの作成者が所有するWebドメインの名前にする必要があります。これにより、名前の一意性を何らかの方法で保証できます。


artifactId


artifactIdで、作成者が作成した成果物の名前を含むストリング。 通常、これはある種の単語であり、場合によってはダッシュの形の区切り文字が使用されます。 たとえば、hibernate-annotation-wat。 artifactIdはgroupId内で一意でなければなりません。


バージョン


最後に、バージョンは、多かれ少なかれ重要な変更ごとに増やす必要があるアーティファクトのバージョンです。 このバージョンには通常、数字と文字が含まれています。 タイプ1.0-スナップショット


プロジェクトを組み立てる方法


プロジェクトファイルの構造が予想どおりであり、その説明がpom.xmlファイルに存在するため、プロジェクトをアセンブルするために、コンソールを開き、現在のディレクトリをプロジェクトディレクトリに変更し、コンソールに書き込むだけです。


 mvn compile 

mavenが作業を終了すると、ターゲットディレクトリがプロジェクトディレクトリに表示され、コンパイルされたコードが配置されます。


コンパイルされたJavaコードはソースと同じに見えますが、Java拡張子を持つファイルの代わりにのみ、パッケージの名前に対応するディレクトリにはクラス拡張子を持つファイルが含まれます。これにはソースコードは含まれなくなりますが、Javaマシンによる解釈を目的としたコードです。


つまり、このコードを実行できるようになりました。


プロジェクトを開始する方法


コンパイルされたコードを実行するには、同じディレクトリからコンソールに入力する必要があります


 mvn exec:java -Dexec.mainClass="com.app.HelloWorld" 

mavenがインターネットからのゴミのダウンロードを停止すると、「BUILD SUCCESS」という碑文が書かれた健康的なタブレットの前に、Hello Worldという行が表示されます。


コードは機能し、すべてがうまくいきました。


これが、mavenビルドシステムを使用してJavaプログラムをビルドする方法です。


合計


  1. mavenは、 <project> src / main / javaディレクトリにビルドするコードを探しています。


  2. Mavenのアセンブリ手順は、 <project> /pom.xmlで検索します


  3. ビルドシステムの結果は、アーティファクトと呼ばれます。


  4. プログラマーはgroupIdartifactIdおよびversionを設定する必要があります


  5. mvn compileによるビルド


  6. コンパイルされたJavaコードはソースコードと同じように見えますが、Java拡張子を持つファイルの代わりに、クラス拡張子を持つファイルがあります。


  7. 次のコマンドでコンパイル済みプログラムを実行できます
    mvn exec:java -Dexec.mainClass = "com.app.HelloWorld"


Source: https://habr.com/ru/post/J309222/


All Articles