서론
Java API 프로젝트를 준비하는 과정에서 Maven은 가장 널리 사용되는 빌드 도구 중 하나로, 프로젝트 관리와 빌드 프로세스를 단순화한다. 이번 글에서는 Maven을 사용하여 자바 API 프로젝트를 준비하는 방법을 단계별로 알아보자.
메이븐 빌드 도구의 이해
Maven은 Java 프로젝트를 빌드하고 관리하기 위한 도구로, 다음과 같은 주요 기능을 제공한다.
- 의존성 관리: 필요한 라이브러리와 그 버전을 자동으로 다운로드 및 관리한다.
- 표준 디렉터리 구조: 프로젝트의 구조를 통일하여 가독성과 유지보수성을 향상시킨다.
- 다양한 플러그인 지원: 테스트, 패키징, 배포 등의 다양한 작업을 자동화할 수 있다.
Maven은 XML 기반의 설정 파일인 pom.xml(Project Object Model)을 통해 프로젝트 정보를 정의한다.
메이븐으로 자바 API 프로젝트 준비
자바 API 프로젝트 개발 과정
Java API 프로젝트를 개발하려면 다음 단계를 따른다.
- 서드파티 라이브러리 다운로드
- 프로젝트에 라이브러리 추가
- 단위 테스트 케이스 작성
- 애플리케이션과 단위 케이스 코드 컴파일
- 테스트 케이스 실행
- 애플리케이션 번들링/패키징
- 아티팩트 리포지터리로 릴리스
- 요구사항 분석 및 설계
- Maven 프로젝트 생성
- pom.xml 파일 설정
- API 코드 작성
- 빌드 및 테스트
- 배포 준비
Maven은 이 과정에서 빌드와 테스트를 자동화하여 개발자 생산성을 높인다.
개발자 지원 빌드 도구 사용법
개발 환경에서 Maven을 설정하려면 다음과 같이 수행하면 된다.
- Maven 공식 사이트에서 Maven 설치
- 환경 변수 MAVEN_HOME 및 PATH에 Maven 설치 경로 추가
- 터미널에서 mvn -v 명령어로 설치 확인
다른 빌드 도구로는 앤트(Apache Ant), 그래들(Gradle) 등이 있다.
자바 API 프로젝트 빌드
Maven을 사용해 빌드하려면 다음 명령어를 사용한다.
- mvn clean: 이전 빌드 아티팩트를 삭제한다.
- mvn compile: 소스 코드를 컴파일한다.
- mvn test: 테스트 코드를 실행한다.
- mvn package: 프로젝트를 패키징하여 실행 가능한 JAR 파일을 생성한다.
Maven 프로젝트 생성 시 다음 3개의 매개변수를 지정해줘야한다.
- Gruop Id: 프로젝트나 그룸의 소유자
- Artifact Id: 프로젝트 이름
- Version: 아티팩트 레포지터리에서 다운로드할 때 사용할 수 있는 특정 릴리스 번호
메이븐 프로젝트 디렉터리 구조
Maven은 표준 디렉터리 구조를 따른다. 기본 구조는 다음과 같다.
project-name/
|-- src/
| |-- main/
| | |-- java/ # 애플리케이션 소스 코드
| | \-- resources/ # 애플리케이션 리소스 파일
| \-- test/
| |-- java/ # 테스트 코드
| \-- resources/ # 테스트 리소스 파일
|-- target/ # 빌드 결과물
|-- pom.xml # Maven 설정 파일
자바 API 프로젝트 코드 파일
src/main/java 디렉터리에 Java 클래스 파일을 작성한다. 예를 들어, 간단한 API 엔드포인트 클래스는 다음과 같이 작성할 수 있다.
package com.example.api;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class HelloWorld {
public String sayHello() {
return "Hello, World!";
}
@Test
public void testSayHello() {
HelloWorld helloWorld = new HelloWorld();
assertEquals("Hello, World!", helloWorld.sayHello());
}
}
자바 API 프로젝트의 pom.xml 파일
Maven 프로젝트의 중심은 pom.xml 파일이다. 이 파일에는 프로젝트 메타데이터와 의존성 정보가 포함된다. 다음은 예제 pom.xml 파일이다.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>java-api</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
CLI에서 메이븐 사용
터미널에서 Maven 명령어를 사용하여 다양한 작업을 수행할 수 있다. 주요 명령어는 다음과 같다.
- mvn archetype:generate: 새로운 Maven 프로젝트 생성
- mvn dependency:resolve: 프로젝트 의존성을 다운로드 및 해결
- mvn site: 프로젝트 문서 생성
메이븐의 settings.xml
Maven 설정 파일인 settings.xml은 사용자별 설정을 정의한다. 위치는 다음과 같다.
- Windows: %USERPROFILE%\.m2\settings.xml
- Linux/Mac: ~/.m2/settings.xml
예제 settings.xml는 다음과 같다.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/path/to/local/repo</localRepository>
<servers>
<server>
<id>central</id>
<username>your-username</username>
<password>your-password</password>
</server>
</servers>
</settings>
'VCS > CICD' 카테고리의 다른 글
젠킨스 파이프라인 이해 (0) | 2024.12.31 |
---|---|
젠킨스, 메이븐과 넥서스 통합 및 자바 API 릴리스용 프리스타일 작업 생성 (0) | 2024.12.30 |
젠킨스 작업의 이해 (0) | 2024.12.29 |
젠킨스 자격 증명 관리와 사용자 관리 (0) | 2024.12.29 |
젠킨스 플러그인 관리와 보안 관리 (0) | 2024.12.29 |
댓글