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