Gradle、War、tomcat 和清单

Gradle, War, tomcat and manifest

我正在尝试 运行 一个 war 文档中提供的文件。我愿意:

$ ./gradlew -Pprod war
$ java -jar  ./build/libs/jhipster-0.1-SNAPSHOT.war --spring.profiles.active=prod
no main manifest attribute, in ./build/libs/jhipster-0.1-SNAPSHOT.war

当我将 Main-Class 属性添加到 war 块时:

war {
    baseName = 'jhipster'
    version =  '0.1-SNAPSHOT'
    manifest {
        attributes 'Main-Class': 'com.jhipster.web.Application'
    }
}

我得到"Error: Could not find or load main class com.jhipster.web.Application"

在 spring-boot gradle 插件文档 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-packaging 中说它应该使用 main() 方法找到应用程序 class 但不知何故 MANIFEST.MF 只包含一行:

Manifest-Version: 1.0

我做错了什么?

war 任务没有 运行 Spring 引导的重新打包任务,所以你留下了一个传统的无法执行的 war 文件,它没有 Main-Class 清单中的属性。

请尝试 运行宁 buildbootRepackage

$ ./gradlew -Pprod bootRepackage