Gradle의 모든 포스팅은 유튜브 프리렉을 기반으로 작성되었습니다.
링크 : https://www.youtube.com/watch?v=s-XZ5B15ZJ0&list=PL7mmuO705dG2pdxCYCCJeAgOeuQN1seZz
강의의 버전이 옛버전 이기 때문에 이론적인 부분만 학습하는것이 좋습니다.
압축하기 zip tar jar
1. zip파일
zip task를 사용한다
task exeTask(type : Zip){
...
}
실습을 위한 임의의 프로젝트 생성
build.gradle파일에 상단 이미지의 스크립트 작성
baseName : ziptask에서 제공해주는 하나의 속성
into("script") : 스크립트라는 디렉터리를 생성하고
from("src") : 스크립트 하위에 src 디렉터리의 파일들을 포함하여 압축파일 생성
includeEmptyDirs = true : true로 지정하면 빈 디렉터리 포함, false이면 빈 디렉터리 제외하고 압축
includeEmptyDirs 기본값은 true이다.
gradle exeTask2 실행결과
Gradle.Zip파일 생성됨
그 내부에 script디렉터리 그 하위에 src디렉터리에 있는 파일인 GradleHtml.html과 emptyDir 디렉터리 생성
GradleHtml.html 파일만 포함된것은
from("src"){
exclude "*.js", "*.xml"
}
해당 구문에서 제외하였기 때문이다.
includeEmptyDirs = false 로 수정 후 gradle exeTask2로 zip파일 생성
empryDir 디렉터리가 제외되고 생성된것을 확인할 수 있다.
스크립트 수정 into블럭 추가
into블럭은 없어도되고 여러개를 만들어도 된다.
gradle exeTask2 실행결과
파일생성 시 파일명을 변경할 수 있다
rename 이용 'Gradle*'을 'Script'로 변경
gradle exeTask4 실행결과
파일명이 모두 Script로 변경된것을 확인할 수 있다.
파일생성 시 파일 내용을 변경할 수 있다.
html, js, xml 파일들에
Gradle이란 내용이 있으면 Change Gradle로 변경
Basename이 뿐만 아니라 archiveName을 통하여 zip파일 이름 생성
file명 부분에 file,Gradle을 붙일 수 있다.
빌드 수행 시 속성정보 출력 가능
gradle exeTask7 실행결과
> Configuration project :
destinationDir : D:\workspace\경로\NewZip
baseName : Gradle
version : 1_0
archivePath : D:\workspace\경로\NewZip\Gradle-file-1_0-script.zip
archivePath 경로를 확인하고 비교해보면 된다.
zip파일 압축형식 지정하기
entryCompression = ZipEntryCompression.DEFALTED
entryCompression = ZipEntryCompression.STORED
DEFALTED : 압축을 진행하고 zip파일을 생성
STORED : 압축을 지정하지 않고 zip파일로만 생성
? 무슨말인가
2. tar파일
Tar task를 이용하여 만든다.
zip파일 만드는 방법과 유사하다
압축을 지정하는 부분이 zip과 다르게
compression 속성을 이용한다. BZIP2, NONE, GZIP 등
NONE : 압축을 지정하지 않고 단순하게 tar파일 만듬
task exeTask9(type: Tar) {
// 속성
baseName="Gradle"
appendix="file"
classifier ="script"
version ="1_0"
from"src"
includeEmptyDirs = true
// 압축방식 - zip 압축 파일 생성때와 다름
compression = Compression.BZIP2
// Compression.NONE
// Compression.GZIP
}
gradle exeTask9 실행결과
3 jar파일
tar, zip파일과 동일한 형식의 스크립트 구조를 가지고 있다.
jar task는 zip task를 상속하여 구현되었다.
차이점 : manifest 블럭을 사용한다
manifeset : 프로젝트의 메타정보를 세팅하는 부분을 담당
attributes를 보면 Gradle로 빌드수행, Implementation-Version은 프로젝트의 버전으로 설정
version = 'jar 1.0'
task exeTask10(type: jar) {
baseName="Gradle"
appendix="file"
classifier="scirpt"
version = "1_0"
from"src"
uncludeEmptyDirs = true
manifest{
attributes("Built-By":"Gradle", "Implementation-Version":project.version)
}
entryCompression = ZipEntryCompression.STORED
}
gralde exeTask10 실행결과
manifest블록으로 지정한 부분이
META-INF 디렉터리로 생성되어진다.
그 하위에 MANIFEST.MF 파일이 생성되어있다.
Gradle은 압축파일을 만들 수 있는 형식들을 제공하고 있다
이러한 아카이브 형식을 통해서 다른 프로젝트나 시스템에서 참조하거나 사용할 수 있도록
특정위치에 배포할 수 있는 퍼블리싱을 할 수 있다.
3. war파일
4. ear파일
강의가 잘못 올라와있어서 따로 확인해보자
'프로그래밍 공부 > Gradle' 카테고리의 다른 글
Gradle Ant,maven에서 그레이들 변환, Gradle에서 Ant,maven 사용, 배포 (0) | 2021.09.11 |
---|---|
Gradle 파일 퍼블리싱 Maven publish, Ivy publish, 인터넷 배포 (0) | 2021.09.10 |
Gradle 테스트 자동화 환경 차이 제어, 패턴을 이용한 테스트, Junit, 병렬 테스트 (0) | 2021.09.08 |
Gradle 의존관계 관리, 환경구성 정의, 저장소 정의 (0) | 2021.09.08 |
Gradle의 파일처리 파일관리 파일참조, 파일복사, 파일삭제 (0) | 2021.09.06 |