build.gradle 1.82 KB
/*
 * Copyright 2018 LINE Corporation
 *
 * LINE Corporation licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

apply plugin: 'org.springframework.boot'

dependencies {
    implementation project(':line-bot-spring-boot')
    implementation project(':line-bot-api-client')
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'com.google.guava:guava'
    implementation 'org.yaml:snakeyaml'
}

jar {
    enabled = true
}

bootJar {
    enabled = true
    // Custom Launch Script avoid https://github.com/spring-projects/spring-boot/issues/5164
    launchScript {
        script = file('src/main/resources/launch.script')
    }
    archiveClassifier.set('exec')
    mainClassName = 'com.linecorp.bot.cli.Application'
}

// Reset bootRepackage dependency to remove dependency from bootRepackage to signArchives.
// This causes circular dependency.
//
// Memo: By default, bootRepackage dependsOn the all tasks creating jar including signArchives task.
// But signArchives should be after repackages.
bootJar.dependsOn.clear()
bootJar.dependsOn jar
signArchives.dependsOn bootJar

// Add exec jar into archives to be uploaded.
artifacts.add(
    'archives',
    file("$buildDir/libs/${project.name}-${project.version}-${bootJar.archiveClassifier.get()}.jar")) {
    classifier = bootJar.archiveClassifier.get()
}