加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

需要Java版本的Maven依赖关系?

发布时间:2020-12-14 05:24:49 所属栏目:Java 来源:网络整理
导读:我使用Maven开发和构建了我的 Java应用程序.我需要支持 Java 1.6,所以我使用以下属性: maven.compiler.target1.6/maven.compiler.targetmaven.compiler.source1.6/maven.compiler.source 不过,当我运行应用程序时,我得到一个“不支持的major.minor版本”错
我使用Maven开发和构建了我的 Java应用程序.我需要支持 Java 1.6,所以我使用以下属性:
<maven.compiler.target>1.6</maven.compiler.target>
<maven.compiler.source>1.6</maven.compiler.source>

不过,当我运行应用程序时,我得到一个“不支持的major.minor版本”错误,我怀疑我的一个依赖jar是一个Java版本比我需要支持的版本更新.

我的问题:

>这甚至可能吗?我认为Maven会照顾这种依赖版本的问题.
>有没有一个简单的方法找出所有我的依赖关系的次要/主要版本? (如果在执行mvn依赖性时可以显示树,则会很棒).

解决方法

问题是,每个依赖(维护者)都可以决定自己使用哪个java版本进行编译(1.5,1.6,1.7,1.8等),所以这不能通过Maven解决.但是您可以确保不使用不同于您喜欢的Java版本的依赖关系.

这可以通过使用Maven Enforcer Plugin使用extra-enforcer-rules:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.4.1</version> <!-- find the latest version at http://maven.apache.org/plugins/maven-enforcer-plugin/ -->
        <executions>
          <execution>
            <id>enforce-bytecode-version</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <enforceBytecodeVersion>
                  <maxJdkVersion>1.6</maxJdkVersion>
                  <excludes>
                    <exclude>org.mindrot:jbcrypt</exclude>
                  </excludes>
                </enforceBytecodeVersion>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>1.0-beta-5</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

如果您使用不同版本的JDK编译的依赖关系,这将破坏您的构建.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读