본문 바로가기
java

bootJar task에 css, javascript minified 적용

by 후린트 2022. 3. 24.
반응형

bootJar에 minified를 적용해서 jar파일을 생성한다.

static resource 경로
src/main/resources/public/js/**
src/main/resources/public/css/**

 

build.gradle

plugins {
	id "org.gradlewebtools.minify" version "1.1.1"
}

ext{
	resourcePath = "target/resources/main/public";
	minifiedPath = "target/minified"
}

// src/main/resources/public/js 파일들을 minifiy 하여 /target/minified/js 경로에 생성
task jsMinify(type: org.gradlewebtools.minify.JsMinifyTask) {
    srcDir = project.file("src/main/resources/public/js")
    dstDir = project.file("${minifiedPath}/js")
    options.originalFileNames = true
}

// src/main/resources/public/css 파일들을 minifiy 하여 /target/minified/css 경로에 생성
task cssMinify(type: org.gradlewebtools.minify.CssMinifyTask) {
   	srcDir = project.file("src/main/resources/public/css")
    dstDir = project.file("${minifiedPath}/css")
    options.originalFileNames = true
}

// minified된 파일을 target/resources/main/public 경로에 복사한다.
task applyMinify(type: Copy){
	dependsOn jsMinify
	dependsOn cssMinify
	
	from project.file("${minifiedPath}")
	into project.file("${resourcePath}")
}	

/*
  bootJar 실행시에 /src/main/resources에 있는 파일들이 /targer/resources로 복사된다.
  복사시에 minified된 css, js 경로는 제외 시킨다.
*/
processResources {
	exclude("**/css/**","**/js/**")
}

// bootJar task실행시에 applyMinify task가 동작하도록 dependsOn 설정 
bootJar{
	enabled = true
	baseName = "${rootProject.name}"
	version = '0.1-SNAPSHOT'

	dependsOn applyMinify
}

 

반응형