Maven での Java バージョンの指定と、コンパイラ プロパティとプラグインの違い
今日は、Java コンパイラ プロパティ とコンパイラ プラグイン の違いについて説明します。 また、Maven で Java のバージョンを指定する方法についても学習します。
コンパイラ プロパティ と プラグイン の違い
どちらも似ています。実際、maven-compiler-plugin の <source> タグは <maven.compiler.source> プロパティを使用し、<target> は <maven.compiler.target> プロパティを使用します。
通常はプロパティを使用することに満足していますが、プラグインは、実際に設定できるさまざまな構成を備えているため、より用途が広いです。 たとえば、fork、annotationProcessors、compilerArgs、およびその他のいくつかのタグがあります。
コンパイルステップでは、特定のパラメーターを追加することは、プラグイン の助けを借りて達成できます。 たとえば、plugin は Java JDK のバージョン番号と bootclasspath を指定できます。
Maven で Java のバージョンを指定する
このセクションでは、Maven プロジェクトで Java バージョンを指定するために使用できるいくつかの方法について説明します。 Maven は、Java アプリケーションの構築およびパッケージ化中に使用されるツールです。
Maven で最新バージョンの Java コンパイラを使用して Java コンパイルを実行する場合は、Java コンパイラがプロジェクトの pom.xml ファイルで明示的に指定されていることを確認する必要があります。
Maven pom.xml ファイルで Java コンパイラのバージョンを設定するには、Java 8 以前のバージョンで 2つの異なる方法があります。 次のセクションでは、Maven で Java コンパイラのバージョンを設定するためのこれら 2つの方法のいずれかについて説明します。
1. Maven コンパイラ プロパティ
Maven の Java バージョンは、構成可能な次の プロパティ を使用して設定できます。 Maven コンパイラーのプロパティは、Maven のpom.xmlファイルで使用される Java コンパイラーのバージョンを指定するための最も単純で直接的な方法を提供します。
maven.compiler.source と maven.compiler.target の両方が必要です。 これら 2つの プロパティ は、次のように pom.xml ファイルに追加する必要があります。
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
2. Maven コンパイラ プラグイン
pom.xml ファイルで Maven コンパイラ plugin を構成する場合、構成に source 要素と target 要素を追加します。 Java 8 が必要な場合は、以下のコードを使用してください。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
3. pom.xml ファイルの compilerArgs オプション
ここでは、コンパイラー・パラメーターを compilerArgs オプションに入れることで、Java のバージョンを構成します。 次の例では、以前に生成されたものと同じ結果が得られます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<compilerArgs>
<arg>-source</arg>
<arg>1.8</arg>
<arg>-target</arg>
<arg>1.8</arg>
</compilerArgs>
</configuration>
</plugin>
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn