maven관련해서 매번 검색하는 scope와 goal

정리해놓고 보면 간단한데 매번 헷갈린다. 특히  goal ㅠㅠ

더 이상 검색을 하지 않기 위해 기록으로 남겨본다.

 

  • scope
    • compile : 컴파일 및 배포시 같이 제공되어 집니다. scope를 설정하지 않았을 때의 기본값입니다.
    • provided : WAS(외부 컨테이너)에서 제공되어 지므로 컴파일 시에는 필요하지만, 배포시에는 빠지는 라이브러리 입니다.
    • runtime : 컴파일 때는 사용되지 않고, 실행시에만 사용되어지는 라이브러리 입니다.
    • test : 테스트 할때만 사용하는 라이브러리 입니다.
    • system : 저장소에서 관리하지 않고 직접 관리하는 jar 파일을 지정합니다.
    • import : 다른 pom 설정파일에서 정의되어 있는 의존 관계를 이 프로젝트로 가져옵니다.
  • goal
    • clean : 컴파일 결과물인 target 디렉토리 삭제
    • compile : 모든 소스코드 컴파일, 리소스파일을 target/classes 디렉토리에 복사
    • package : compile 수행 후, 테스트 수행, <packaging> 정보에 따라 패키징 수행
    • install : package 수행 후, local repo에 install 수행
    • deploy : install 수행 후, 배포 수행, 여기서 배포는 웹서버에 배포가 아니다. 회사 repo에 배포다. 
      • 아래와 같이 distributionManagement 항목이 기술되어야 한다.
    <distributionManagement>
        <repository>
            <id>releases-repo</id>
            <name>Releases Repository</name>
            <url>회사repository주소(넥서스)</url>
        </repository>
        <snapshotRepository>
            <id>snapshots-repo</id>
            <name>Snapshots Repository</name>
            <url>회사repository주소(넥서스)</url>
        </snapshotRepository>
    </distributionManagement>

 

출처)

https://offbyone.tistory.com/163

https://wikidocs.net/18341

+ Recent posts