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 |
---|