티스토리 뷰

Side Technologies

Maven : 기본적으로 하는 일

Korean Eagle 2020. 7. 20. 02:52
728x90

1. Maven은 기본적으로 java, kt, scala, 같은 java vm기반의 코드를 컴파일한다.

 

2. 컴파일한 코드와 관련된 파일을 하나의 박스에 담는 package를 만든다.

  2-1 다양한 패키지 형식을 지원하는데

    2-1-1 jar (Java Archive) - 하나 이상의 class를 포함하는 zip압축 패키지

      2-1-1-2 스프링이나 hibernate 라이브러리 같은 것)

    2-1-2 war (Web Application aRchive) - 하나의 완전한 웹프로그램을 담은 zip압축 패키지이다.

      2-1-2-1 여러 개의 jar파일과 클래스파일, 웹리소스를 가질 수 있다.

      2-1-2-2 톰캣, 웹스피어 같은 웹컨테이너에서 실행된다.

    2-1-3 ear (Enterprise ARchive)- 하나 이상의 war파일을 담을 수 있는 zip 압축 패키지이다.

    2-1-4 Fat Jar - 모든 의존성을 다 담고 있는 실행가능한 Jar파일

      2-1-4-1 스프링 부트의 기본 실행 파일

    2-1-5 Docker Container - 실행환경, jvm, 자파 패키지 파일을 포함하고 있는 도커 이미지

      2-1-4-2 microservice를 작성에 유리한 실행환경을 포함한 패키지, 현재 트랜드이다.

 

3. 자바 컴파일, 패키징 하기 - 아래 같은 내용이 maven으로는 간단하게 가능하다.

  3-1 완전 옛날 방식의 자바 파일의 생성하고 패키징하는 방법은 아래와 같다.

    3-1-1 우선 HelloWorld.java를 만들었다.

 

 

    3-1-2 컴파일하고 실행가능하다. 그리코 jar로 패키징도 가능하고 실행도 가능하다.

      3-1-2-1 아래의 경우 jar에 실행파일이 설정되지 않았으므로 실행파일을 지정해야 한다.

      3-1-2-2 classpath 역시 설정하지 않으면 동작하지 않는다.

 

 

    3-1-3 패키지를 살펴보면 따로 아래처럼 살펴보면

      3-1-3-1 압축해지를 하면 META-INF 폴더가 추가로 생성되고 내부에 MANIFEST.MF파일이 생긴다.

 

 

      3-1-3-2 나노로 열어보면 아래와 같이 jar의 설정정보가 들어 있다.

      3-1-3-3 여기에 실행클래스 정보 같은 것이 설정되어 실행가능한 jar로 동작하게 된다.

 

4. 외부 라이브러리 사용하기

  4-1 폴더를 하나 만들고 아파치 commons lang3를 받아왔다.

 

  4-2 이제 라이브러리를 사용하도록 수정한다.

 

 

  4-3 소스코드를 변경했으니 이제 classpath에 걸어 컴파일하고 실행한다. 

    4-3-1 두번째 Hello Maven World가 첫 글자 만 대문자인것을 확인할 수 있다.

 

  4-4 쓸대없이 복잡한 이런 과정을 Maven을 이용하면 쉽게 처리할 수 있다.

728x90
댓글