无法在基于JHipster的Web应用程序中运行从Gradle BootRepackage生成的战争 [英] Cannot run the war generated from Gradle BootRepackage in a JHipster-based web Application

查看:148
本文介绍了无法在基于JHipster的Web应用程序中运行从Gradle BootRepackage生成的战争的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用> java -jar 运行< ./ gradlew -Pprod bootRepackage 。 bootRepackage 任务成功结束。



当我查看 project_root / build / libs / 文件夹中,war和war.original文件使用以下权限创建:

  -rw -rw-r-- 1个用户用户110376521 Apr 24 09:42 app-0.1-SNAPSHOT.war 
-rw-rw-r-- 1个用户用户107542786 Apr 24 09:40 app-0.1-SNAPSHOT.war .original

在我的build.gradle中,我有以下内容:

  apply plugin:'java'
apply plugin:'maven'
apply plugin:'spring-boot'
apply plugin :'war'

bootRepackage {
mainClass ='org.package.Application'
}

//原文来自JHipster。取消注释这也不起作用。
// springBoot {
// mainClass ='org.package.Application'
//}

//我从[this] [1]问题,但也没有工作。
war {
baseName ='app'
version ='0.1-SNAPSHOT'
manifest {
attributes'Main-Class':'org.package.Application'


当我运行jar时,我得到:

  $ java -jar app-0.1-SNAPSHOT.war --spring.profiles.active = prod 
java.lang.IllegalStateException :在org.springframework.boot.loader中没有在jar中指定的'Start-Class'清单条目:file:/ home / user /.../ build / libs / app-0.1-SNAPSHOT.war!/
。 archive.Archive.getMainClass(Archive.java:57)
位于org.springframework.boot.loader.ExecutableArchiveLauncher.getMainClass(ExecutableArchiveLauncher.java:63)
位于org.springframework.boot.loader.Launcher。启动(Launcher.java:61)
在org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:80)

我该怎么办?感谢。

更新
我将这个战争解开并研究了MANIFEST.MF:

  Manifest-Version:1.0 
Start-Class:org.package.Application
Spring-Boot-Version:1.1.7.RELEASE
Main-Class:org.springframework.boot.loader.WarLauncher

我正确吗?

解决方案

这是build.gradle的工作原理,bootRepackage注释掉了:

 buildscript {
repositories {
mavenCentral()
}
依赖关系{
classpath(org.springframework.boot:spring- boot-gradle-plugin:1.2.3.RELEASE)
}
}

apply plugin:'java'
apply plugin:'maven'
apply plugin:'spring-boot'
apply plugin:'war'

repositories {
mavenCentral()
}


依赖关系{
compile(org.springframework.boot:spring-boot


// bootRepackage {
// mainClass ='org.package.Application'
//}

war {
baseName ='app'
version ='0.1-SNAPSHOT'
manifest {
attributes'Main-Class':'org.package.Application'


MANIFEST.INF中的差异

 > libs diff META-INF / MANIFEST.MF〜/ temp / MANIFEST -MF-works 
2c2
< Start-Class:org.package.Application
---
> Start-Class:Application

行动中

 >示例/ opt / java / bin / java -jar build / libs / app-0.1-SNAPSHOT.war 

。 ____ _ _ _ _ _
/ \\ / ___'_ __ _ _(_)_ _ _ _ _ _ \\\\\
(()\ ___ |'_ | '_ | |'_ \ / _` | \\\\
\\ / ___)| | _)| | | | | || (_ | |))))
'| ____ | .__ | _ | | _ | _ | | _\__,| / / / /
========= | _ | ============== | ___ / = / _ / _ / _ /
: :Spring Boot ::(v1.2.3.RELEASE)

2015-04-24 18:44:55.443信息18776 --- [main]应用程序:在vagrant-ubuntu-trusty-64上启动应用程序PID为18776(由开发人员在/ home / developer / developments / gradle-sandbox / sample中开始)


I'm trying to run with java -jar the war file produce by ./gradlew -Pprod bootRepackage. The bootRepackage task successful concludes.

When I look in the project_root/build/libs/ folder, the war and war.original files are created with the following permissions:

-rw-rw-r-- 1 user user 110376521 Apr 24 09:42 app-0.1-SNAPSHOT.war
-rw-rw-r-- 1 user user 107542786 Apr 24 09:40 app-0.1-SNAPSHOT.war.original

In my build.gradle, I have the following:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'war'

bootRepackage {
    mainClass = 'org.package.Application'
}

// Original from JHipster. Uncommenting this does not work either.
//springBoot {
//    mainClass = 'org.package.Application'
//}

// I got this from [this][1] questions, but did not work either.
war {
    baseName = 'app'
    version =  '0.1-SNAPSHOT'
    manifest {
        attributes 'Main-Class': 'org.package.Application'
    }
}

When I run the jar I get:

$ java -jar app-0.1-SNAPSHOT.war --spring.profiles.active=prod
java.lang.IllegalStateException: No 'Start-Class' manifest entry specified in jar:file:/home/user/.../build/libs/app-0.1-SNAPSHOT.war!/
        at org.springframework.boot.loader.archive.Archive.getMainClass(Archive.java:57)
        at org.springframework.boot.loader.ExecutableArchiveLauncher.getMainClass(ExecutableArchiveLauncher.java:63)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:61)
        at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:80)

What should I do? Thanks.

Update I unziped the war and looked into the MANIFEST.MF:

Manifest-Version: 1.0
Start-Class: org.package.Application
Spring-Boot-Version: 1.1.7.RELEASE
Main-Class: org.springframework.boot.loader.WarLauncher

I this correct?

解决方案

Here's the build.gradle that works, bootRepackage commented out:

buildscript {
    repositories {
        mavenCentral()
                        }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.3.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'war'

repositories {
    mavenCentral()
}


dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
}

//bootRepackage {
//    mainClass = 'org.package.Application'
//    }

war {
    baseName = 'app'
    version =  '0.1-SNAPSHOT'
    manifest {
        attributes 'Main-Class': 'org.package.Application'
    }
}

Diff in the MANIFEST.INF

> libs  diff META-INF/MANIFEST.MF ~/temp/MANIFEST-MF-works 
2c2
< Start-Class: org.package.Application
---
> Start-Class: Application

in action

> sample        /opt/java/bin/java -jar build/libs/app-0.1-SNAPSHOT.war

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.2.3.RELEASE)

2015-04-24 18:44:55.443  INFO 18776 --- [           main] Application                              : Starting Application on vagrant-ubuntu-trusty-64 with PID 18776 (started by developer in /home/developer/developments/gradle-sandbox/sample)

这篇关于无法在基于JHipster的Web应用程序中运行从Gradle BootRepackage生成的战争的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆