728x90
반응형
메이븐
메이븐은 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴입니다.
메이븐을 사용하면 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있습니다.
메이븐은 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리합니다.
메이븐을 사용하면 컴파일과 동시에 빌드를 수행할 수 있을 뿐만 아니라 관련된 라이브러리도 일관성 있게 관리할 수 있어 편리합니다.
[ 메이븐 웹 프로젝트 기본 디렉터리 구조 ]
[ 메이븐 프로젝트 구성요소 ]
구성요소 | 설명 |
src/main/java | 자바 소스 파일이 위치합니다. |
src/main/resources | 프로퍼티 파일이나 XML 설정파일 등 리소스 파일이 위치합니다.(database, log4j properties 등) |
src/main/webapp | WEB-INF, static(image, css, js 등) 등 웹 애플리케이션 리소스가 위치합니다. |
src/test/java | JUnit 등 자바 테스트 파일이 위치합니다. |
src/test/resources | 테스트 시에 필요한 resource 파일이 위치합니다. |
target | 빌드 결과 파일을 출력합니다. |
pom.xml | 프로젝트 정보가 표시되며 스프링에서 사용되는 여러가지 라이브러리를 설정해 자동으로 다운로드 할 수 있습니다. |
[ pom.xml ]
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myspring</groupId>
<artifactId>myproject</artifactId>
<name>myproject</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
...
</project>
<dependencies> 태그를 이용해 프로젝트가 의존하는 여러가지 라이브러리를 설정합니다.
[ pom.xml 의 프로젝트 설정 정보 태그 구성 요소 ]
속성 | 설명 |
groupId | 프로젝트 그룹 id 를 나타내며 일반적으로 도메인 이름을 사용해 설정합니다. |
artifactId | 프로젝트 아티팩트 id 를 설정합니다. 대부분 패키지 이름으로 설정합니다. |
version | 프로젝트의 버전을 설정합니다. |
packaging | 애플리케이션 배포 시 패키징 타입을 설정합니다. (war 파일로 패키징) |
[ pom.xml 의 dependencies 정보 설정 태그 구성 요소 ]
속성 | 설명 |
dependency | 프로젝트에서 의존하는 다른 라이브러리 정보를 기술합니다. |
groupId | 의존하는 프로젝트의 그룹 id |
artifactId | 의존하는 프로젝트의 artifact id |
version | 의존하는 프로젝트 버전 정보 |
여기까지 임미다.
728x90
'개발 > Spring' 카테고리의 다른 글
스프링 REST API - @ResponseEntity (0) | 2022.11.18 |
---|---|
스프링 REST API - @RequestBody & @ResponseBody (0) | 2022.11.18 |
스프링 REST API - @PathVariable (0) | 2022.11.18 |
스프링 REST API - @RestController (0) | 2022.11.18 |
스프링 인터셉터(Interceptor) (0) | 2022.11.18 |
스프링 @Autowired (0) | 2022.11.16 |
스프링 애너테이션(Annotation) (0) | 2022.11.16 |
스프링 트랜잭션(Transaction) (0) | 2022.11.16 |
스프링 마이바티스 연동 (0) | 2022.11.16 |
마이바티스(Mybatis) (0) | 2022.11.15 |