플러그인의 속성을 이용해서 JDK 버전 바꿔보기
본 포스팅은 제가 유튜브 뉴렉처님 메이븐 강의를 공부하면서 내용을 정리하는 공간입니다 만약 저와 똑같이 공부를 진행해보고 싶으시다면 메이븐 카테고리의 글들을 참조 바랍니다 링크는 걸어둘게요
https://happy-inside.tistory.com/category/%EC%BD%94%EB%94%A9/Maven
메이븐에는 단계(Phase)라고 하는 것이 있고 단계들은 플러그인들과 연결되어 있습니다. 플로그인은 미리 설정이 되어 있는 것과 없는 것이 있습니다.
'compile'단계를 수행하고 있는 것은 'org.apache.maven.plugins:maven-compiler-plugin:3.1:compile'이라는 플러그인이며, 이것은 메이븐 프로젝트가 지원하고 있는 플러그인입니다. 'compile'플러그인의 속성은 메이븐 공식홈페이지에서 볼 수 있는데 'compile'을 담당하고 있는 플러그인의 경우 두 가지의 'Goal' - [compiler:compile goal]과 [compiler:testCompile goal]을 갖고 있습니다.
사실 'Goal'이란 플러그인의 하위 프로그램이며 실질적인 플러그인 역할을 담당합니다. 플러그인은 단계마다 동일한 플러그인을 사용할 수 있으며, 그 안에서 작은 'Goal'들이 각 단계를 책임지는 실질적인 역할을 수행합니다.
플러그인의 속성을 이용해서 JDK버전을 바꿔보겠습니다
이전에 'pom.xml'코드에 추가했었던 설정 코드를 지우고 저장합니다
[메이븐 프로젝트] - [마우스 우클릭] - [Maven] - [Update Project] - [OK]
JDK버전이 1.8에서 1.5로 바뀌는 걸 볼 수 있습니다
JDK 1.5버전이 원래는 기본 버전입니다. 커맨드 창에서 최초 메이븐 프로젝트를 생성할 때 'archetype'을 메이븐의 'quickstart'버전으로 만들었는데 이 버전의 기본 JDK가 1.5버전입니다. 이 설정을 바꾸려면 컴파일 플러그인 'Goal'의 설정을 바꿔야 합니다.
'pom.xml'에 코드를 추가합니다
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
코드를 추가하면 저장
추가한 코드의 내용은 플러그인의 버전을 3.8.1로 높이고 구설설정을 통해서 '소스코드-1.8, 타겟-1.8로 설정'한다는 뜻이며 이런 식으로 플러그인 설정을 재정의할 수 있습니다. 기본설정이 바껴서 내가 추가한 코드로 오버라이드 됩니다. 이제 컴파일하면 추가한 코드대로 적용이 되는 것입니다.
다시 'Update Project'를 해줍니다
JDK버전이 1.5에서 다시 1.8로 바뀐 것을 볼 수 있습니다
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
'메이븐 컴파일러의 플러그인의 소스와 타겟의 속성을 1.8로 바꾸겠다'라는 코드
사실 컴파일러 플러그인이 버전이 올라가면서 3.6이상 버전부터는 소스버전, 타겟버전을 바꿀 때 플러그인 설정을 오버라이드 하는것처럼 할 필요가 없습니다. 맨 처음 지웠던 소스코드가 사실은 버전이 업그레이드 되고 나서 적용하는 새로운 방식이었습니다. 단순하게 JDK버전을 손데는 데는 이것만으로도 충분합니다. 플러그인의 다른 다양한 속성들을 건드려면 플러그인이라는 것을 이용해서 속성을 변경해야 합니다.
이클립스는 빈 프로젝트에서 시작하지만, 메이븐은 남이 만든 'archetype'을 이어서 개발할 수 있게 되어있습니다. 프로젝트를 만들 때 모델로 할 수 있는 'type'이 몇 개가 되는지 알아보려면 커맨드 창에서 내 메이븐 프로젝트 디렉토리로 경로 이동을 한 후 'mvn archetype:generate'를 입력하면 알 수 있습니다.
수많은 'archetype'들이 있지만 자세히 알 필요는 없습니다. '정의하지 않고 기본적으로 사용한다'라고 하면 'maven quickstart'아키타입이 사용됩니다. 이것으로 자바프로젝트를 만들고 그것을 JDK를 변경해봤던 것입니다.
도구는 필요한만큼만 알아가는 것입니다
'인생최적화'
'코딩 > Maven' 카테고리의 다른 글
[Maven] 메이븐 JSP/서블릿 라이브러리 설정하기 (7) | 2020.06.23 |
---|---|
[Maven] 메이븐 웹 프로젝트로 변경하기 (8) | 2020.06.22 |
[Maven] 메이븐 이클립스에서 프로젝트 만들기 (6) | 2020.06.20 |
[Maven] 메이븐 Build LifeCycle (2) | 2020.06.19 |
[Maven] 메이븐 IDE없이 컴파일하기 (0) | 2020.06.18 |
댓글