Maven Scope 정리

IT 지식/기타지식|2018. 10. 4. 00:59

Maven Scope 정리

pom.xml에서 상용되는 scope에 대한 정리

compile
- 아무런 scope를 명시하지 않았을때 사용되는 기본값.
- 테스트 및 런타임에도 classpath에포함된다.

※provied
- JDK 또는 컨테이너에 의해서 runtime에 제공되는 모듈
- 이 scope는 이미 컨테이너가 해당 라이브러리를 제공하고 있을때 유용 그러므로 실제로 배포시에 제외대상
- 예를 들면 아래 servlet api의 경우 이미 웹서버에서 제공하고 있는 경우에 maven scope를 provied로 기재

1
2
3
4
5
6
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
cs

※runtime
- 런타임시 필요하지만 컴파일시에 필요하지 않는 경우에 사용
- 테스트와 런타임에는 사용 되지만 컴파일시에 사용 되지 않음
- 대표적 예로 JDBC Driver

1
2
3
4
5
6
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
    <scope>runtime</scope>
</dependency>
cs


※test
테스트 코드 컴파일시 필요, 배포시 제외


참고
https://www.baeldung.com/maven-dependency-scopes


Scope를 Provided로 지정했을때 문제사례
인텔리제이에서 간단한 spring project를 만들고 실행시킬때 NoClassDefFoundError: javax/servlet/Filter 에러가 발생했다.

그 이유를 구글링해서 확인해보니 실행시 사용할 spring-boot-starter-tomcat의 스코프를 provided로 지정해서 에러가 발생했다. 스코프를 지워서 default인 compile로 사용하지 정상적으로 동작했다.
https://stackoverflow.com/questions/31494183/getting-a-caused-by-java-lang-noclassdeffounderror-javax-servlet-http-httpser


댓글()

Maven 프로젝트를 Gradle로 변경

IT 지식/기타지식|2018. 8. 5. 00:45

Maven 프로젝트를 Gradle로 변경해봤다.

멈저 PC에 cmd 창에서 gradle 명령어를 사용할 수 있도록 환경 변수를 편집해보자.
우선 시스템 환경변수에서 시스템 변수 편집에 들어가 Path를 수정하여 gradle\bin의 위치를 설정해준다. (gradle은 홈페이지에서 별도로 다운로드)



정상적으로 환경변수가 설정이 되면 cmd 창을 키고 gradle -v 명령어를 사용하면 다음과 같이 gradle 버전정보가 출력된다



그리고 maven 프로젝트 디렉토리에서 pom.xml이 존재하는 위치로 이동하여 다음 명령어를 사용하면 자동으로 build.gradle이 생성되면서 gradle 설정파일이 추가된다.

1
gradle init --type pom
cs


댓글()

Maven 다운로드 및 환경변수(Path) 등록방법

IT 지식/기타지식|2018. 5. 31. 21:40

Spring boot cli에서 maven관련 명령어를 사용을 위해서는 Maven이 환경변수 되어있어야 한다.



Maven을 윈도우에서 환경변수로 설정하는 방법을 알아보자.


1. 다운로드



경로 : https://www.apache.org/dyn/closer.cgi


아파치 메이븐의 다운로드 페이지가 변경되어서 조금 헷갈린다. 

잘모르겠으면 여기서 받으면 된다.


http://mirror.navercorp.com/apache/maven/maven-3/3.5.3/






2. 환경변수 등록



1) 먼저 시스템 변수에서 MAVEN_HOME을 설정해준다. (이미지 참고)




2) Path에서 편집을 눌러 다음과 같이 설정한다. %MAVEN_HOME%\bin




만약 이렇게 설정하여도 정상동작 하지 않으면 다음과정을 확인한다.


1) SET JAVA_HOME을 cmd창에 입력한다



만약 다음과 같이 출력된다면 JAVA_HOME을 다음과 같이 등록하고 Path에 maven과 동일하게 등록한다.








모든 설정  끝나고 cmd창에 mvn -version을 쳐서 다음과 같이 출력된다면 설정이 완료된것이다.






댓글()
  1. BSR 2019.12.12 13:49 댓글주소  수정/삭제  댓글쓰기

    안녕하세요, 포스팅 잘 보고 있습니다.
    감사합니다.
    글에 약간의 오류가 있어서 댓글 남깁니다.
    2. 환경변수 등록
    2) Path에서 편집을 눌러 다음과 같이 설정한다. %MAVEN_HOME%bin
    위 부분에서, bin 앞에 '\' 가 빠져서, 아래와 같이 수정이 필요합니다.
    %MAVEN_HOME%\bin