Пружинная загрузка свойств запуска невозможна

Я пытаюсь использовать средство запуска весенних загрузок

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>org.springframework.boot.loader.PropertiesLauncher</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Start-Class>com.att.hadoop.loader.run.Application</Start-Class>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>

когда я смотрю на файл манифеста, это выглядит так

$ unzip -q -c hdfsloader-0.0.1-SNAPSHOT.jar META-INF/MANIFEST.MF
Manifest-Version: 1.0
Built-By: aq728y
Build-Jdk: 1.7.0_25
Start-Class: org.springframework.boot.loader.PropertiesLauncher
Created-By: Apache Maven 3.1.0
Spring-Boot-Version: 1.0.0.RC1
Main-Class: org.springframework.boot.loader.JarLauncher
Archiver-Version: Plexus Archiver

любые идеи о том, почему мой основной и начальный класс не правы

Я хочу установить это как

Основной класс: org.springframework.boot.loader.PropertiesLauncher

Начальный класс: com.att.hadoop.loader.run.Application

1 ответ

Решение

Плагин spring-boot-maven-plugin перезаписывает ваш манифест и, в частности, управляет Main-Class а также Start-Class записи, так что вы должны настроить их там (не в плагине jar). Main-Class в манифесте на самом деле контролируется layout свойство загрузочного плагина, например

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <version>1.0.0.RC1</version>
  <configuration>
    <mainClass>${start-class}</mainClass>
    <layout>ZIP</layout>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>repackage</goal>
      </goals>
    </execution>
  </executions>
</plugin>

По умолчанию для свойства макета используется предположение, основанное на типе архива (JAR или WAR). Для PropertiesLauncher макет "ZIP".

Другие вопросы по тегам