티스토리 뷰
artifact : 빌드 결과물
pom.xml 전체 구조 요약
pom.xml은 크게 아래 5개 블록으로 구성돼요:
- 프로젝트 기본정보 (groupId, artifactId, version)
- 패키징 방식 (jar, war 등)
- 의존성(dependencies) — 필요한 외부 라이브러리
- 빌드 설정(build) — 어떻게 빌드할지 정의
- 플러그인(plugins) — 빌드 시 실행할 도구들 (예: 컴파일러, 테스트, 배포 등)
1️⃣ 프로젝트 기본정보
<groupId>com.example</groupId>
<artifactId>smart-gateway</artifactId>
<version>1.0.0</version>
항목의미예시
| groupId | 회사나 조직의 고유 도메인 이름 | com.example, kr.go.korpa |
| artifactId | 실제 프로젝트(모듈) 이름 | smart-gateway, user-service |
| version | 버전 정보 | 1.0.0, 1.2.3-SNAPSHOT |
📦 Maven은 이 세 가지를 조합해서 라이브러리를 식별합니다.
예: com.example:smart-gateway:1.0.02️⃣ 패키징 방식
<packaging>war</packaging>값설명
jar 일반 Java 라이브러리 (보통 백엔드 서비스 내부 로직) war 웹 애플리케이션 (Tomcat 같은 서버에 배포) ear 엔터프라이즈 앱 (잘 안 씀) 즉, war면 웹 서버용, jar면 라이브러리용이에요.
3️⃣ 의존성 (Dependencies)
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.10</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency> </dependencies>
- spring-web: 스프링 프레임워크의 웹 기능
- jackson-databind: JSON 데이터를 자바 객체로 변환
Maven은 자동으로 중앙 저장소(repository) 에서 해당 라이브러리를 다운로드해서 프로젝트에 추가해요.
즉, 일일이 .jar 파일을 복사할 필요가 없어요 🙌4️⃣ 빌드 설정 (Build)
<build> <sourceDirectory>src/main/java</sourceDirectory> <outputDirectory>target/classes</outputDirectory> </build>
- sourceDirectory: 소스 코드가 들어있는 위치
- outputDirectory: 컴파일된 .class 파일이 생성되는 위치
보통 기본값이라 이 부분은 생략되기도 해요.
5️⃣ 플러그인 (Plugins)
<build> <plugins> <!-- Java 컴파일러 설정 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> <!-- 단위 테스트 실행 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build>
- maven-compiler-plugin: 자바 버전(예: 8, 11, 17) 지정
- maven-surefire-plugin: 테스트(JUnit) 실행용
- maven-war-plugin: WAR 파일 만들 때 사용
💡 실제 빌드 흐름 정리
mvn clean package
실행 순서:
단계설명
| clean | 이전 빌드 결과 삭제 (target/ 폴더 제거) |
| compile | src/main/java 코드 컴파일 |
| test | src/test/java 테스트 실행 |
| package | 결과물(JAR/WAR) 생성 |
최종 결과는:
target/smart-gateway-1.0.0.war
처럼 생성돼요.
'JAVA' 카테고리의 다른 글
| [Java] Math.abs() (0) | 2024.04.16 |
|---|---|
| [JAVA] 변수 String은 왜 대문자? (0) | 2024.04.06 |
| [JAVA] 왜 클래스 이름 첫문자는 대문자야? (0) | 2024.04.06 |
| [JAVA] 변수(variable) (0) | 2024.04.06 |
| IF (0) | 2023.07.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- oracle
- ASCII
- IntelliJ
- android studio 구버전
- android studio 구 버전
- codepen 연동
- intellij 무료 버전 설치
- sql 자격검정 실전문제 정오표
- oracle xe
- dell 윈도우 복구
- sql 테스트 사이트
- intellij 설치 방법
- 이기적 sql 개발자 이론서+기출문제 정오표
- sqld
- tns:protocol adaptor error
- tns:프로토콜 어댑터 오류
- intellij 다운로드 소스 코드 실행 방법
- intellij 프로젝트 생성 방법
- 웹에서 sql 테스트 사이트
- android studio download
- 로직 연습
- dell 윈도우
- codepen 티스토리 연동
- sql 노랭이 정오표
- intellij 무료 버전 설치 방법
- PCCE
- dell 윈도우 재설치
- 노랭이 정오표
- release period
- 정오표
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함