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 컴파일을 실행하도록 하려면 프로젝트의 pom.xml
파일에 Java 컴파일러가 명시적으로 지정되어 있는지 확인해야 합니다.
Java 8 및 이전 버전을 사용하여 Maven pom.xml
파일에서 Java 컴파일러 버전을 설정하는 두 가지 방법이 있습니다. 다음 섹션에서는 각각 Maven에서 Java 컴파일러 버전을 설정하는 두 가지 접근 방식 중 하나를 설명합니다.
1. Maven 컴파일러 속성
Maven의 Java 버전은 구성할 수 있는 다음 properties
를 사용하여 설정할 수 있습니다. Maven 컴파일러 properties
는 Maven pom.xml
파일에서 사용하는 Java 컴파일러 버전을 지정하는 가장 간단하고 직접적인 방법을 제공합니다.
maven.compiler.source
및 maven.compiler.target
이 모두 필요합니다. 이 두 속성
은 다음과 같이 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