3. jar 작업과 제어 속성 - jar {}
jar 작업은 Java 플러그인에 속해 있으며 .jar 파일을 생성하는 일을 한다. 다음의 속성값을 조정하면 jar 파일 이름이나 .jar 파일 안에 넣어야 할 것과 넣지 말아야 할 것 등을 조정할 수 있다.
jar 작업의 주요 속성 이름과 설명을 나타낸 표이다.
속성 이름 | 설명 |
archiveName | JAR 파일 이름. 지정하지 않으면 다음의 규칙에 따라 생성된다. [baseName]-[appendix]-[version]-[classifier].[extension] |
baseName | JAR 파일의 기본 이름 |
appendix | JAR 파일명에서 appendix 부분에 놓일 이름 |
version | JAR 파일명에서 version 부분에 놓일 이름 지정하지 않는다면 프로젝트의 기본 속성인 version 값이 사용된다. |
classifier | JAR 파일명에서 classifier 부분에 놓일 이름 |
extension | JAR 파일명에서 extension 부분에 놓일 이름 지정하지 않는다면 'jar'가 사용된다. |
excludes | JAR 파일 생성 시 제외할 파일에 대해 ANT 스타일로 패턴을 지정(ANT는 ant.apache.org에서 제공하는 빌드 도구이다.) 예) ['**/*.txt'] → 폴더에 상관없이 확장자가 txt인 파일은 제외 |
includes | JAR 파일 생성 시 포함할 파일에 대해 ANT 스타일로 패턴을 지정(ANT는 ant.apache.org에서 제공하는 빌드 도구이다.) 예) ['conf/*.xml'] → conf 폴더에 있는 xml 파일은 포함 |
manifest | MANIFEST.MF 파일에 들어갈 속성=값 정보를 설정. (이 파일은 JAR 파일 안에 META-INF 폴더에 있다.) |
- build.gradle 코드 분석
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
}
앞의 코드는 jar 작업을 수행할 때 MANIFEST.MF 파일에 들어갈 속성을 지정하고 있다. 빌드 수행 후, 생성된 JAR 파일을 풀어 보면 MENIFEST.MF 파일의 내용이 다음과 같다.
JAR 파일 : META-INF/MANIFEST.MF
Manifest-Version: 1.0
Implementation-Title: Gradle Quickstart
Implementation-Version: 1.0
4. 의존 라이브러리를 가져올 저장소 설정 - repositories {}
프로젝트에서 사용할 의존 라이브러리를 가져오려면 먼저, 의존 라이브러리들이 보관되어 있는 저장소(repository)를 설정해야 한다. repositories 블록을 이용하면 의존 라이브러리를 가져올 저장소를 설정할 수 있다.
다음 표는 저장소를 지정하기 위해 호출할 수 있는 주요 메서드 목록이다. repositories 블록에서 사용하기를 원하는 저장소에 대한 메서드를 호출하면 된다.
메서드 이름 | 설명 |
flatDir() | 로컬 폴더를 저장소로 지정 |
ivy() | Apache Ivy 서버를 저장소로 지정 |
jcenter() | Bintray의 jcenter 서버를 저장소로 지정 |
mavenCentral() | Maven 중앙 서버를 저장소로 지정. 서버의 기본 URL은 http://repo1.maven.org/maven2/ 이다. |
mavenLocal() | Maven 로컬 임시 보관소를 저장소로 지정 |
- build.gradle 코드 분석
repositories {
mavenCentral()
}
우리의 프로젝트에서는 의존 라이브러리를 찾기 위한 저장소로 메이븐(Maven) 중앙 서버를 지정하였다.
5. 프로젝트에서 사용할 의존 라이브러리 지정 - dependencies {}
프로젝트에서 사용할 의존 라이브러리에 대한 정보는 dependencies 블록을 사용하여 설정한다. 문법은 다음과 같다.
dependencies {
[설정 이름] [의존 라이브러리 정보]
}
- 의존 설정 이름
'의존 설정 이름(dependency configuration name)'은 의존 라이브러리가 사용될 시점이다. 다음은 Java 플러그인에 정의되어 있는 의존 설정 이름과 이 설정을 사용하는 작업에 대해 정리한 표이다.
설정 이름 | 작업 | 설명 |
compile | compileJava | compile 이름으로 등록한 라이브러리는 compileJava 작업을 수행할 때 사용된다. |
runtime | runtime 이름으로 등록한 라이브러리는 실행 시에 사용된다. | |
testCompile | compileTestJava | testCompile 이름으로 등록한 라이브러리는 compileTestJava 작업을 수행할 때 사용된다. compileTestJava 작업은 compileJava 작업을 포함하고 있으므로, compile 이름으로 등록한 라이브러리는 제외하고 등록한다. |
testRuntime | test | testRuntime 이름으로 등록한 라이브러리는 test 작업을 수행할 때 사용된다. test 작업은 compileTestJava와 compileJava 작업을 포함하고 있으므로 이 작업들과 관련된 라이브러리는 제외하고 등록한다. |
providedCompile | compile과 같다. 다만 .war 파일에는 포함되지 않는다. | |
providedRuntime | runtime과 같다. 다만 .war 파일에는 포함되지 않는다. |
- 의존 라이브러리 정보
외부 의존 라이브러리를 사용하는 것으로 가정하고 설명한다. 라이브러리 정보는 다음 표기법에 따라 지정한다. 둘 중에서 편한 방법을 사용하면 된다.
표기법 1.
[설정이름] 'group:name:version:classifier'
표기법 2.
[설정이름] group: '그룹명', name: '라이브러리 이름', version: '라이브러리 버전', classifier: '분류 접미사'
라이브러리 정보에서 'name' 항목은 필수이다. 나머지는 선택 사항이다.
- build.gradle 코드 분석
dependencies {
compile 'org.springframework:spring-context:4.0.3.RELEASE'
compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
이번 절에서는 스프링 프레임워크가 제공하는 기능 중에서 IoC 컨테이너를 사용할 것이다. IoC 컨테이너를 사용하려면 'spring-context' 라이브러리가 있어야 한다. 이 라이브러리를 가져오기 위해 compile 이름으로 등록하였다.
나머지 'commons-collections'와 'junit' 라이브러리는 프로젝트를 생성할 때 예제 소스를 위해 등록된 것이다. 나중에 쓸 수도 있을 것 같아서 지우지 않았다. JUnit 라이브러리는 테스트용이라서 설정 이름을 testCompile로 지정하였다.
참고도서 : https://freelec.co.kr/book/1674/
[열혈강의] 자바 웹 개발 워크북
[열혈강의] 자바 웹 개발 워크북
freelec.co.kr
'교재 실습 > 자바 웹 개발 워크북' 카테고리의 다른 글
131. XML 기반 빈 관리 컨테이너 (1) (3) | 2022.10.14 |
---|---|
130. Gradle 빌드 파일 분석 (3) (0) | 2022.10.13 |
128. Gradle 빌드 파일 분석 (1) (0) | 2022.10.11 |
127. 스프링 IoC 컨테이너 사용 준비 (4) (0) | 2022.10.10 |
126. 스프링 IoC 컨테이너 사용 준비 (3) (0) | 2022.10.04 |
댓글