본문 바로가기
dev/잡동산이

[MAVEN] MAVEN

by dev_Step 2023. 2. 7.

MAVEN

 

1. 내가 알고 있던 MAVEN

 - pom.xml에 내가 필요로한 라이브러리를 https://mvnrepository.com/ 에서 검색하여 검색한 결과를 pom.xml의 <dependencys> 태그 안에 추가하려는 <dependency>를 추가해주면 

 - default 설정을 통해서 USER_HOME/.m2/repository/ 안에 MAVEN에서 가지고온 라이브러리들이 채워짐

 

2. 알게된 사실

 1) local repository, remote repository 가 있으며 local, remote 모두 사용자가 변경할 수 있다.

   ㄴ eclipse를 통해서 maven을 사용할 경우 settings.xml 파일이 존재하지 않음 (  보통 ~/conf/settings.xml 경로에 존재 )

   ㄴ 작성자는 maven을 다운로드후 E드라이브의 20230102 폴더 안에 압축을 해제 하였다.)

  - User Settings의 경우는 maven 설정시에 사용자가 해당 프로젝트에 대한 settings.xml 설정을 구분할 수 있고,

    Global Settings 의 경우는 전체 Maven에 대한 설정을 나타낸다.

  - settings.xml 파일에 들어가게 되면 여러가지 설정을지정해 줄수있다. 그중 하나는 Local Repository를 설정하는 부분임.

1-1) 위의 사진과 같이 <localRepository> 태그 안쪽에 내가 지정할 Local Repository를 지정해 주면  pom.xml 태그에서 작성한 라이브러리들이 Remote Repository를 통해서 다운로드되어 Local Repository로 옴겨지게 된다.

 

2. maven install 

 - maven install 의 경우 현재 내가 작성하고 있는 MAVEN 프로젝트를 JAR 파일로 압축하여,  Local Repository에

   해당 groupId, artifactId를 통해 directory를 만들고 해당 폴더 안에 jar파일과, pom 파일을 생성하여 준다.

 - 보통 내가 만든 프로젝트를 Library화하여 다른 프로젝트에 dependency하거나, offline 환경일때 사용하지 않을까 싶다.

 2-1-1) maven project 생성 maven-archetype-quickstart(java프로젝트), webapp(web 프로젝트)

   2-1-2)  프로젝트를 작성을 마친 후에 library화 할 프로젝트를 Maven install 해준다.

     ㄴ install 이 성공적으로 끝나게되면 Build Success라는 로그표시가 나타난다.

 

     ㄴ Local Repository 에 처음 Maven Project를 생성할때 작성한 groupId, artifactId를 기준으로 directory, jar, pom 파일이 생성된다

  2-1-3) maven install 이 끝난 후 해당 jar파일을 dependecy로 사용할 프로젝트로 이동하여 <dependecy>를 추가하기 전에

          Window > show View > Maven Repositoryes를 추가한 다음에 방금 추가한 프로젝트를 읽기위하여 Local 에서

          Rebuild Index를 해줘야 한다. 그렇지 않으면 2-4) 화면에서 방금 등록한 프로젝트가 검색되지 않는다. 

          그 후 pom.xml에 depedency를 추가해주면 해당 라이브러리가 등록된것을 확인할 수 있다.

         

 

         2-2-1) maven update

          - 정확하게는 아직 모르겠지만 pom.xml에 해당 디펜던시를 추가한 후 저장, update를 하게되면, Local Repository에 

            해당 라이브러리가 존재하지 않으면, 지정된 Remote Repository에서 해당 라이브러리를 Local Repository로 가져

            오고, ( 해당 pom.xml 과 Local Repository의 버전 동일하게 유지)

           - 위에처럼 calculator가 apache 프로젝트에 dependency되어 있을경우 calculator의 .jar를 Local Repository에서 

              버전을 변경하였을경우 maven update시에 dependecy되어 있는 버전이 변경된 .jar로 변경되어 진다.         

              ( 프로젝트의 pom.xml에 dependency 되어 있는 라이브러리의 ,jar 변경시 maven update 하게 되면 변경된 jar로 

                업데이트 된다.)

          

        * jar로 묶은 project // 해당 jar를 버전을 변경하고 jar로 만든 project를 maven update할경 우 해당 버전은 달라지지않음

 

       2-3-1) maven은 build 도구이다

 

'dev > 잡동산이' 카테고리의 다른 글

[chatGPT] 질문했던 내용들 정리  (1) 2023.05.05