본문 바로가기
Spring

maven 정리

by dharana7723 2023. 2. 4.

**최근에는 gradle을 더 많이 사용하는 추세라고 알고 있지만 토이 프로젝트에서 maven을 사용하게 되어** 

**Maven을 정리해보게 되었습니다.**

  
#### 기능

   - 빌드툴 

   - 패키징

    배포 가능한 파일 생성 : war, jar, exe 등

   -프로젝트 관리

    버전 및 릴리즈 관리, javadoc 작성 가능

   -test

    단위 테스트 수행, 빌드 결과 정상인지 점검

   -배포

    실운영 서버에 배포가 아닌 프로젝트 버전 관리 위한 특정 원격 저장소에 배포


##### maven hello world 프로젝트 시작
###### 특정 프로젝트 경로 최상위에 pom.xml을 생성
<project>: 최상위 태그
<groupId>: 프로젝트 그룹명, 일반적으로 다른 컴포넌트와 라이브러리와 차별될 수 있는 유니크한 명칭을 가짐
관례적으로 회사 도메인 명을 거꾸로 한 명칭을 사용

<artifactId> : 해당 프로젝트 명칭(컴포넌트 명칭), 유니크해야함
<modelVersion>: pom.xml 을 이루고 있는 maven xml 문서 형식의 버전이다. 현재는 무조건 4.0.0이다.
5.0.0 은 draft 상태이며 정식 발표되지 않았다.
<version>: 해당 artifact(컴포넌트)의 version, 뒤쪽 SNAPSHOT은 아직 개발 중임을 의미함
<package>: 어떤 파일 형식으로 패키징할 것인가를 정의, jar, war, exe 등이 올 수 있음

<project>
  <groupId>com.blindkaga</groupId>
  <artifactyId>HelloWorld</artifactId>
  <modelVersion>4.0.0</modelVersion>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packagin>
</proejct>

#####  프로젝트에 src/main/java 디렉토리를 생성하고
HelloWolrd.java 파일을 생성.

public class HelloWolrd{
public static void main(String args[]){
System.out.println("Maven Hello World!");
}
}

##### compile 버전 정보 입력
- 위쪽 1번 pom 정보가 기본적으로 작성되어야 할 항목이지만, 현재 시점에서는 컴파일 시 아래와 같은 에러가 발생함
- compile을 상위 Java 버전으로 컴파일을 수행할 추가 정보를 입력함
[ERROR] Source option 5 is no longer supported. Use 6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.


<project>
...생략
   <build>
       <plugins>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-comipler-plugin</artifactId>
           <version>3.7.0</version>
           <configuration>
           <source>소스코드 Java 버전(ex 1.8)</source>
           <target>compile시 결과물 Java 버전(ex 1.8)</target>
           </configuration>
        </plugin>
        </plugins>
    <build>
</project>

##### 빌드 수행
빌드를 하기전 빌드 결과 위치를 비우는 명령어 수행
mvn clean
compile 수행 명령어
compile 후 target 디렉토리가 생성되며 컴파일된 결과물이 만들어짐
target/classes/HelloWolrd.class 파일 확인 가능
mvn compile

##### 실행
아래의 명령어로 실행하면 Maven Hello World! 가 정상적으로 찍힌다.
-cp: 클래스 패스 경로
java -cp target/classes HelloWorld
Maven Hello World!

##### 패키징
-java 패키징 명령어
target/HelloWorld-1.0.SNAPSHOT.jar 파일이 생성된다.
mvn package

##### 패키징된 파일 실행
java -jar target/HelloWorld-1.0-SNAPSHOT.jar HelloWorld

###### 참조:
https://wikidocs.net/17298


'Spring' 카테고리의 다른 글

maven 정리 (3)  (0) 2023.02.05
maven 정리 (2)  (0) 2023.02.05
의존성 주입과 초기화  (0) 2022.07.26
스프링 : AOP  (0) 2022.07.22
spring-boot : application.yml ( 데이터베이스 연동)  (0) 2021.03.04