2015-03-06 4 views
0

У меня есть проект (весенний ботинок, maven, war), и мне нужно разбить его на два проекта. Новый проект зависит от классов от первого проекта, поэтому новый проект зависит от первого. К сожалению, оба проекта имеют основной класс, и новый проект всегда запускает основной класс из первого проекта, когда он развернут в tomcat. Я определил начальный класс и основной класс в моем pom.xml, и я вижу, что сгенерированный файл войны содержит манифест с правильным основным классом, но это не помогает ... Что я делаю неправильно?Spring boot игнорирует основной класс

Мой pom.xml из нового проекта (важные части):

<project ... 
    <properties> 
     <start-class>x.y.z.a.NewApplication</start-class> 
    </properties> 
... 
     <dependency> 
      <groupId>x.y.z</groupId> 
      <artifactId>OriginalProject</artifactId> 
      <version>1</version> 
      <classifier>classes</classifier> 
     </dependency> 
    ... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <mainClass>x.y.z.a.NewApplication</mainClass> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
... 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>x.y.z.a.NewApplication</mainClass> 
         </manifest> 
        </archive> 
... 

манифеста от войны файла:

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Built-By: michal 
Start-Class: x.y.z.a.NewApplication 
Spring-Boot-Version: 1.2.1.RELEASE 
Created-By: Apache Maven 3.0.5 
Build-Jdk: 1.8.0_25 
Main-Class: org.springframework.boot.loader.WarLauncher 

Приложение работает на Apache Tomcat 8.0.12.

спасибо.

+0

Возможно, проблема не связана с весенним ботинком, а с maven-war-plugin. Приложение работает правильно на моем локальном компьютере с загрузкой весны и его встроенным tomcat, но не может работать, когда он развернут на автономном сервере tomcat. – Michal

+0

Или это может быть связано с калитки - есть два класса WebApplication, а на автономном tomcat - плохая работа ... – Michal

ответ

1

Я нашел свою ошибку - мне нужно переопределить класс SpringBootServletInitializer из первого проекта, чтобы указать на правильный основной класс. Поэтому я добавил новую реализацию класса SpringBootServletInitializer в новый проект. Правильная реализация инициализируется с помощью аннотации Spring @Profile.

Смежные вопросы