Engineering/Java
gradle multi build for war
부스 boos
2020. 10. 5. 18:58
728x90
gradle muliti project 인 경우 sub 모듈만 따로 war 로 빌드를 하기 위한 내용을 정리해본다.
구성
- server-api : API 서버
- common : 공통 모듈(domain, dao)
gradle 5.X 이상일 경우
- build.gradle (root)
project(':server-api') {
dependencies {
compile project(':common')
}
}
server-api, common 을 가진 project 에서 server-api 만 war 로 빌드한다.
- build.gradle(:server-api)
apply plugin: 'war'
bootWar.archiveName = 'multiplatform-auth-server-api.war'
dependencies {
compile project(':common')
implementation ('org.springframework.boot:spring-boot-starter-web') {
exclude module: "spring-boot-starter-logging"
exclude module: "logback-classic"
}
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.8'
...
}
gradle 5.X 이하일 경우
- build.grade(:web) : 위에서 web 이라는 모듈은 없지만 mkyong.com 예제를 그대로 사용함.
project(':web') {
apply plugin: 'war'
war {
archiveName 'hello-gradle.war'
}
dependencies {
compile project(':core')
providedCompile 'javax.servlet:servlet-api:2.5'
providedCompile 'org.apache.tomcat:tomcat-jsp-api:7.0.55'
//...
}
}
참고 :
https://mkyong.com/gradle/gradle-war-plugin-change-output-war-filename/