Languages/java

[JAVA]Maven03 maven프로젝트(.war, .jar)만들어보기

뱅타 2021. 3. 31. 23:20

Maven을 사용함으로 인해 느끼는 편리한점 두가지

  1. 어디에 무엇이 있다는 것을 표시해줌.
  1. 알아서 인덱싱 작업을 해 줘서 라이브러리 관리가 편하다.

 

우선 standardalone 메이븐 프로젝트 만들기

Create a simple project 클릭!

 

Group id와 Artifact id를 입력함.

두개의 idsms 추후에 만약 만든 파일을 maven에 올리게 된다면 목차 만들 때 필요함.

group_id의 경우 분류값으로 사용될 수 있게 작성된다.

보통 사이트 도메인을 거꾸로 쓴다.

artifact id는 제품명으로 많이 작성됨

version은 유지보수 시 버전

packaging의 경우 - standard는 → jar를, webApplication의 경우 → war를 선택

 

 

Finish를 누르면 바로 생성되지 않고

중앙 저장소에서 필요한 소스들을 가져온다. 우측 하단은 로딩되는 그 과정을 표시.

 

생성 시 이런 구조를 가지고 있다.,

test와 main(패키징) 두개로 나뉘어진다.

이 말은 곧 아래의 사진처럼 클래스패스가 두개로 나뉘어져 있다는말!

그렇다고 아래의 src 폴더에서 작업을 하면 compile이 안되기 때문에

위의 src/.../...라고 이름되어있는 파일에서 작업해야 한다.

target폴더의 경우 → 일반 web dynamic project의 build 폴더와 같은 역할을 한다.

두개의 클래스가 위치해 있는 장소.

*차이점

메이븐에서는 폴더와 패키지가 다르게 적용된다. 그냥 dynamic에서는 동일하게 패키지 형태로 나옴.

java 파일이 실제로 존재하는 경로

src/main/java에서 HelloMaven.java

src/main/resources에서의 테스트 xml파일들이 navegator로 보면

저렇게 실제 저장된 위치가 다르다는것을 알 수 있다.

maven은 각 phase 마다 지원되는 plugin들이 존재한다.

https://m.blog.naver.com/PostView.nhn?blogId=remagine&logNo=220726121992&proxyReferer=https:%2F%2Fwww.google.com%2F

 

1.5버전을 1.8로 maven을 사용해서 바꿔보자

 

POM.xml → Project Object Model

페이지에 대한 모든 설정들이 여기로 들어간다.

 

템플릿 구조

창 하단의 pom.xml 옆의 Effective POM을 클릭하면

이렇게 작성되어 있다.

여기 default-compile으로 지정되어있음

default_compile로 되어 있어서 1.5로 잡혀있는 듯함.

 

이렇게 작성하면 됨.

플러그인을 추가해서 변경해보자

우측 하단에 글을 칠때마다 로딩됨. 중앙저장소에서 검색을 실시간으로 검색하고있다.

 

앞쪽이 group_id 그리고 \t로 띄워져 있는 곳이 artifact id다.

정품일수록 group_id와 artifact_id가 비슷하다.

3.1 → 3.8로 변경

pom.xml 파일이 이렇게 변경됨.

우리는 최신버전보다 java1.8로 맞추려고 한다.

 

저장해도 바로 적용이 안된다. 당황하지 말자.

실시간으로 메이븐이 설정 파일을 읽지 않기 때문이다.

 

이렇게 update를 클릭 해 주면

이런 창이 뜨는데 선택 후 ok 누르면 잘 적용됨.

업데이트 되었다.

*업데이트의 경우 중앙 저장소에서 새로이 그 파일들을 불러오는 형태.

 

jackson-databind라는 녀석을 maven을 사용해서 받아보자.

이녀석은 dependency다.

중앙 저장소에 없을 경우 없다. 그러면 아래의 링크에서 찾아보자

https://search.maven.org/

 

 

경고!

너무 많이 올리니까 원본을 잘 찾아야한다. 허튼걸 받으면 삽질을 오래 할 수도 있다.

그룹id와 artifact id를 잘 보아야 한다.

원본!

 

자 파일을 다운받지 말고 오른쪽의 dependency를 복사하자

 

아까 복사한 것들을 </build>아래에 붙여넣는다.

<type>bundle</type> 는 삭제. 우리는 jar 파일이 필요하다.

 

maven dependecies 폴더가 생기면서 이렇게 자동으로 들어간다.

 

pom.xml에서 추가도 가능하다.

 

add를 클릭해서

검색.

arcifactid == groupid 가 같으면 원본일 확률이 높다!

 

 

 

*update_ 중앙 저장소에서 직접 가지고 오는 구조.

update 후 또다시 파일이 깨지면

명시적으로 지우고 다시 받아본다.(탐색기에서 찾아들어가서 지워버린다)

로컬저장소 → .m2파일

 

이번엔 web application!

 

 

webapp이 여기에 존재한다. webapp 하단 WEB-INF가 없다고 당황하지 말자.

잘 추가된다.

동일하가 1.8버전으로 변경

 

<source></source>기본사양 <target></target>권장사양

${ } 를 placeholder라 부른다

placeholder를 이용해서 버전 정하기. 이제 버전 바꿀때는 위의 propertie만 손보면 된다.

 

server 설정하기.

 

이렇게 servlet을 받으면 후에 배포할 때 배포한 곳의 서버를 사용해야 한다.

그래서 배포할 때는 받은 녀석을 버리고 서버의 것을 써야한다.

 

compile 배포 후까지 들고 가겠다.

provided 배포 후에는 서버에서 제공되는 것을 사용하겠다.

이렇게 설정하면 옆에 provided라고 뜬다.

이렇게 scope도 잘 변해있음.

dynamic web module 버전 바꾸기

2. 버전에서 3. 버전으로 변경하기. 우클릭 후 project Facets에 들어가면 된다.

변경 후에 안바뀜 ㅎㅎ web.xml을 보면 버전이 2.5로 되어있기 때문.

얘때문에 안댐

삭제 하면 잘 나옴 ㅎㅎ

다시 처음에 했듯이

이렇게 generate 클릭하면 잘 변경됨

 

 

잘 나온다.

*maven프로젝트는 lib 이 존재하지 않는다.

만약 중앙저장소에 파일이 없다면 mvnrepository 를 뒤져도 된다.

모든 드라이버들을 업데이트 해 주는 사이트

 

http://maven.jahia.org/maven2/

우리는 maven을 사용하다 보면 maven의 중앙저장소 외에

다른 곳에서 파일을 받을 일이 생길수도 있다.

 

그러니 maven의 중앙 저장소 말고 다른 레파지토리를 추가해 보자

 

 

ibatis 받아보기 dependency에서는 alpha, beta버전은 안쓰는게 좋다.

728x90
반응형

'Languages > java' 카테고리의 다른 글

[JAVA]Eclipse/Browser 디버깅 해보기  (0) 2021.04.01
[JAVA] Exception  (0) 2021.04.01
[JAVA]maven02 mac에서 maven 설치  (0) 2021.03.30
[JAVA](JSP)Cookie01_로그인_입문용  (0) 2021.03.28
[JAVA]maven01 설치하기  (0) 2021.03.25