我有两个不同版本的spring配置,涉及两个不同的java版本,即Java8和Java11
项目结构类似于:
pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<toolchains>
<jdk>
<version>zulu-11</version>
</jdk>
</toolchains>
</configuration>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>8</release>
</configuration>
</execution>
<execution>
<id>compile-java-11</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>11</release>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/java11</compileSourceRoot>
</compileSourceRoots>
<multiReleaseOutput>true</multiReleaseOutput>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifestEntries>
<Multi-Release>true</Multi-Release>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.981 s
[INFO] Finished at: 2021-10-01T21:56:03+05:30
[INFO] Final Memory: 23M/293M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.5.5:repackage (repackage) on project demo: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.5.5:repackage failed: Unab
le to find a single main class from the following candidates [com.example.demo.DemoApplication, META-INF.versions.11.com.example.demo.DemoApplication] -> [Help 1]
[ERROR]
那么,有没有什么方法可以使用两个类而不导致构建失败呢?
此外,我不能使用配置文件和提及类要在特定的配置文件中使用。
可以使用pom.xml
中的start-class
属性来配置用于启动应用程序的类。
<properties>
<start-class>com.example.demo.DemoApplication</start-class>
</properties>
当您在Java11上使用java-jar
运行应用程序时,应该自动使用meta-inf/versions/11
中的demoapplication
变体。
在java 9中,引入了一个新特性,其中jar格式得到了增强,可以根据平台维护和使用不同版本的java类或资源。 在JAR中,文件文件的部分中有一个条目。 目录还包含版本子目录,其子目录(从9开始,用于Java 9)存储版本特定的类和资源文件。 在这个例子中,我们将使用多版本的jar来创建两个版本的文件,一个用于jdk 7,另一个用于jdk 9,并在不同的jdk版本上运行。 第1步 - 创建一个文
我有一个独立的库(jar文件),它被添加到应用程序服务器类路径中,以监控JVM中所有正在运行的应用程序,并在出现问题时发送电子邮件。 jar文件将所有依赖项捆绑在jar中(使用maven shade插件),包括javamail jar文件。 当appserver中的其他Web应用程序之一具有javamail作为依赖项时,我的jar文件中的javamail会发生一些依赖冲突,我得到一个异常 我无法修
问题内容: 将两个不同版本的 AngularJS 加载到一页中会遇到什么问题? 显然,这似乎是一件愚蠢的事情,但是我的用例是使用 AngularJS 的页面,该页面结合了第三方组件,并拖入了其首选的 AngularJS 版本。 更新: 找到一些信息: https://groups.google.com/forum/#!msg/angular/G8xPyD1F8d0/u1QNDNvcwW4J htt
我的机器中有两个xampp版本,一个是php版本5.4,另一个是7.1(最近安装的)。我通常使用composer命令下载laravel。以前我下载时得到了laravel 5.0.X版本,因为我的php vesrion(5.4),但即使在安装了新的xampp(具有php版本7)之后,composer也只下载了laravel 5.0.X。当我检查我的php版本时,它显示了5.4,现在我如何选择或将最新
问题内容: 我们有一个新的应用程序,需要glibc 2.4(来自gcc 4.1)。我们运行的机器具有gcc 3.4.6。我们无法升级,并且应用程序必须在此计算机上运行。 我们安装了gcc 4.1,但是在编译时,它使用的是3.4.6中的所有include等。 我们如何解决这个问题? 关于仅将此应用程序使用4.1的任何建议? 问题答案: 请参阅“如何安装GCC的多个版本” 这里的GNU GCC FAQ
我需要在需要PHP 5.2的遗留系统上做一些工作 我已经安装了XAMP 1.7.3,但这个版本有PHP 5.3。 由于这是我在未来几个月可能会做几次的工作,我正在考虑安装一个运行PHP 5.2的XAMP版本,同时我还参与了一些需要使用PHP 5.3的工作,所以我无法卸载当前的XAMP版本并安装一个使用PHP 5.2的版本 在XAMPP下载网站上,很明显,在安装任何XAMPP版本时,它将删除之前的版