【问题标题】:Minimum Spring-batch and spring-context version compatible with Java 11?与 Java 11 兼容的最低 Spring-batch 和 spring-context 版本?
【发布时间】:2021-05-10 10:17:09
【问题描述】:

我需要将我的maven 项目升级到Java 11,所以我想知道:

  1. Java 11 支持的Spring Frameworkspring-batch version 的最低版本是多少?
  2. 要在 pom 中进行哪些更改?

目前我知道:

  1. 我的项目不是 spring-boot。
  2. 我知道Spring version 至少应该是5.1
  3. <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>-->
    <configuration>
         <release>11</release>-->
         <encoding>iso-8859-1</encoding>
    </configuration>
    

pom 包含以下内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>jo.tatova.honki</groupId>
<artifactId>toko</artifactId>
<version>1.0.40-SNAPSHOT</version>

<packaging>jar</packaging>
<name>toko</name>

<parent>
    <groupId>jo.tatova.parent</groupId>
    <artifactId>parent-pom</artifactId>
    <version>1.0.0</version>
</parent>

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
    <org.springframework.batch>2.1.9.RELEASE</org.springframework.batch>
    <org.slf4j-version>1.6.2</org.slf4j-version>
</properties>

<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
        <exclusions>
            <!-- Exclude Commons Logging in favor of SLF4j -->
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.batch</groupId>
        <artifactId>spring-batch-core</artifactId>
        <version>${org.springframework.batch}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.6.10.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.6.10.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.2.0.Final</version>
    </dependency>

    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.4</version>
    </dependency>

    <dependency>
        <groupId>jo.tatova</groupId>
        <artifactId>record-utils</artifactId>
        <version>1.0</version>
    </dependency>

    <dependency>
        <groupId>jo.tatova.honki</groupId>
        <artifactId>honki-java</artifactId>
        <version>1.0.110-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${org.slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${org.slf4j-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>com.informix</groupId>
        <artifactId>informix-driver</artifactId>
        <version>3.0</version>
        <scope>runtime</scope>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>iso-8859-1</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <shadedArtifactAttached>true</shadedArtifactAttached>
                <shadedClassifierName>jar-with-dependencies</shadedClassifierName>
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                            <exclude>META-INF/LICENSE*</exclude>
                            <exclude>META-INF/license.txt</exclude>
                            <exclude>META-INF/NOTICE*</exclude>
                            <exclude>META-INF/notice.txt</exclude>
                            <exclude>LICENSE</exclude>
                            <exclude>license.txt</exclude>
                            <exclude>NOTICE</exclude>
                            <exclude>overview.html</exclude>
                            <exclude>readme.txt</exclude>
                            <exclude>testpool.jocl</exclude>
                            <exclude>XPP3_1.1.4c_MIN_VERSION</exclude>
                        </excludes>
                    </filter>
                </filters>
                <transformers>
                    <transformer
                            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                        <resource>META-INF/spring.handlers</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.ManifestResourceTransformer">
                        <manifestEntries>
                            <Main-Class>jo.tatova.honki.toko.TokoParser</Main-Class>
                        </manifestEntries>
                    </transformer>
                </transformers>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

【问题讨论】:

  • "什么是 Spring Framework 的最低版本" "我知道 Spring 版本至少应该是 5.1" 你回答了你自己的问题。

标签: java spring spring-batch upgrade java-11


【解决方案1】:

我知道 Spring 版本至少应该是 5.1

2.1.9.RELEASE

您似乎正在从 v2 升级 Spring Batch。由于您的 Spring 版本至少应为 v5.1,因此您需要将 Spring Batch 升级到 v4(基于 Spring Framework v5)并且至少需要 Java 8。所以关于最低 Java 版本的问题的答案是 Java 8,但如果你愿意,你应该能够使用 Java 11。

【讨论】:

  • 你在 pom 中看到的是现有的遗留代码,我应该将它升级到 java 11。问题是 pom 中应该改变什么?
  • 是的,我明白这一点,这就是为什么我得出结论说您正在从 v2 升级。需要升级Java版本到11,spring框架版本到5.1,批处理版本到4.3等
  • 感谢您的回复。我刚刚将版本更改为 11,它编译并运行。它没有任何错误,对我来说有点奇怪,为什么它没有抱怨我没有升级到 5.1 和 4.3 的 spring 版本和批处理版本。你有什么主意吗?还是您认为这会导致生产或功能出现问题?
  • 这是因为 Java 确保了向后兼容性。我建议运行您的应用程序以查看是否没有运行时错误。我相信我回答了你的问题,所以请接受答案。谢谢。
猜你喜欢
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2013-12-11
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多