Пружинная загрузка свойств запуска невозможна
Я пытаюсь использовать средство запуска весенних загрузок
<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".