javaspring-bootmavenvaadinvaadin14

Vaadin + SpringBoot = no main manifest attribute, in file.war


I have a webapp in Vaadin 14 LTS. When I run the webapp in INTELLIJ it runs normally (in development mode), but when I compile it in production mode with "mvn clean package -Pproduction" and then run with "java -jar smcweb.war" I get the message "no main manifest attribute, in smcweb.war". I have several APIs created with SpringBoot and I can run them normally with "java -jar ..."

Something curious: I use the apexcharts chart library. When from INTELLIJ I execute the webapp with "spring-boot:run" it is shown in the console:

[INFO] --- spring-boot-maven-plugin:2.5.4:run (default-cli) @ smcweb ---
[INFO] Attaching agents: []
Listening for transport dt_socket at address: 5230
                                 _                   _        
  __ _  _ __    ___ __  __  ___ | |__    __ _  _ __ | |_  ___ 
 / _` || '_ \  / _ \\ \/ / / __|| '_ \  / _` || '__|| __|/ __|
| (_| || |_) ||  __/ >  < | (__ | | | || (_| || |   | |_ \__ \
 \__,_|| .__/  \___|/_/\_\ \___||_| |_| \__,_||_|    \__||___/
       |_|                                                    

...instead of the typical Spring Boot console output:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.4)

Below is the POM.xml file

PD: It is possible that some residue of PAYARA MICRO has been left in the POM.XML. Previously we deployed with PAYARA MICRO.

Thanks in advance!

I have tried some solutions in MAVEN, like this. All of them without success.


Solution

  • If your goal is to build a self contained system using java -jar a web application archive (war) is not the right format for your application. You should consider using jar and proper spring boot configuration for it.

    Additionally, the apex chart addon is providing a banner.txt which it shouldn't do, therefore you get the mentioned logo, instead of your own / spring boot's default.