본문 바로가기

개발자놀이터

maven 정리 두번째

반응형

1. maven archetype 은 뭘까?

 > 프로젝트 자동생성 템플릿 목록이라고 보면 된다.

 예를들어 maven-archetype-webapp 을 선택하면 src, target 폴더 및 webapp 폴더와 index.jsp 까지 생성해준다.


2. 저장소란?

 > 라이브러리들이 보관된 장소다.


3. 중앙저장소란?

 > 메이븐에서 자체 관리하는 라이브러리 보관장소이다.


4. 원격저장소란?

 > 중앙저장소를 제외한 외부사이트에서 라이브러리들을 보관하는 장소이다.

  스프링소스나 회사내 원격저장소 등이 있다.


5. 로컬저장소란?

 > 내 컴퓨터에 라이브러리들을 모아놓는 장소이다. 

    기본 위치는 USER_HOME/.m2/repository 디렉토리이다.

    mvn test를 실행하면 중앙이나 원격저장소에 있는 라이브러리들을 내 컴퓨터의 로컬저장소로 내려받는다.


스프링 라이브러리 내려받기 실습

1. http://mvnrepository.com/ 접속하여 org.springframework 검색

2. 최신버전 클릭

3. maven dependency 복사

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>4.1.6.RELEASE</version>

</dependency>

4. pom.xml 에 삽입

5. mvn test 실행


dependency scope

1. compile : 범위를 설정하지 않았을 때의 기본 범위이다. 컴파일할 때도 사용하며, 배포할 때도 같이 배포해야 하는 라이브러리이다.

2. provided : 예를 들어 servlet.jar 는 서블릿 컨테이너에서 제공하므로 컴파일 시점에는 필요하지만, 배포될 필요는 없다. 이럴 때 사용하는 범위이다.

3. runtime : 말 그대로 컴파일에는 사용되지 않지만, 애플리케이션을 실행할 때 사용되는 라이브러리일 경우에 설정한다.

4. test : 테스트에만 사용하는 라이브러리이다. 배포할 때 같이 배포되지 않는다.

5. system : system 범위는 provided 와 비슷하다. 그러나 jar 파일을 직접 제공해야 한다. 따라서 이 범위의 jar 파일은 저장소에서 관리되지 않을 수도 있다.


실제 프로젝트에 라이브러리를 복사하는 명령어

mvn clean dependency:copy-dependencies package


POM 속성

pom/project 속성

  • project.groupId 
  • project.version
  • project.name 
  • project.description
  • project.build.sourceDirectory
  • project.build.scriptSourceDirectory
  • project.build.testSourceDirectory
  • project.build.outputDirectory
  • project.build.testOutputDirectory
  • project.build.directory
  • project.baseUri
settings 속성
  • settings.localRepository

환경변수 속성
  • env.PATH
  • env.JAVA_HOME

자바시스템 속성
  • java.version

기타속성
  • basedir




반응형