Reputation: 137
I am trying to create shaded jar for my spring project with bellow pom.xml, which runs fine in IDE but when I run mvn clean package
and execute the jar with java -jar .\flink-0.0.1-SNAPSHOT-test.jar
I am getting:
Your project setup is incompatible with our requirements due to following reasons:
- Spring Boot [0.0.1-SNAPSHOT] is not compatible with this Spring Cloud release train
- Change Spring Boot version to one of the following versions [2.6.x, 2.7.x] .
I checked spring cloud compability matrix where spring cloud 2021.0.x is compatible with spring boot 2.6.x.
<groupId>com.example</groupId>
<artifactId>flink</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>flink</name>
<description>flink</description>
<properties>
<spring-cloud.version>2021.0.1</spring-cloud.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.8</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>test</shadedClassifierName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
<resource>META-INF/spring.factories</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.example.Application</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Project currently contain only single Main Class:
@SpringBootApplication
public class Application
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
Upvotes: 3
Views: 13158
Reputation: 25177
Shading the jar means that the version compatibility that checks the manifest is broken. Set spring.cloud.compatibility-verifier.enabled=false
Upvotes: 5