Maven에서 Java 버전 지정 및 컴파일러 속성과 플러그인 간의 차이점 지정

Muhammad Zeeshan 2023년6월20일
  1. 컴파일러 속성플러그인의 차이점
  2. Maven에서 Java 버전 지정
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.sourcemaven.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을 구성할 때 sourcetarget 요소를 구성에 추가하십시오. 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>
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

관련 문장 - Java Version