bong-u/til

Spring 개념 - Maven

수정일 : 2024-11-15

Maven coordinates

  • groupId : 회사나 단체명 ex) org.springframework, org.prgms
  • artifactId : 프로젝트 명 ex) spring-context, order-api
  • version : 프로젝트 버전 ex) 5.2.15-RELEASE, 1.0-SNAPSHOT

Build lifecycle

  • validate, compile, test, package, verify, install, deploy

Trnsitive Dependencies

1A
2├── B
3│   └─ C
4└── D
  • C는 A의 transitive 의존성

Dependency Scope (<scope>)

  • compile(default) : 컴파일, 테스트, 실행에 라이브러리가 필요할때
  • provided : JDK 또는 컨테이너가 해당 라이브러리를 제공할때 (JSP, servlet)
  • runtime : 실행과 테스트에만 사용될때 (JDBC driver)
  • test : 테스트 컴파일 및 실행에만 필요할때 (easymock, junit)
  • system: provided와 비슷하지만, 사용자가 jar파일의 위치를 지정

example

 1<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3  <modelVersion>4.0.0</modelVersion>
 4
 5  <groupId>org.prgms</groupId>
 6  <artifactId>academy-maven</artifactId>
 7  <version>1.0-SNAPSHOT</version>
 8  <packaging>jar</packaging>
 9
10  <name>academy-maven</name>
11  <url>http://maven.apache.org</url>
12
13  <properties>
14    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15  </properties>
16
17  <dependencies>
18    <dependency>
19      <groupId>junit</groupId>
20      <artifactId>junit</artifactId>
21      <version>3.8.1</version>
22      <scope>test</scope>
23    </dependency>
24  </dependencies>
25</project>