首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块已被取消推荐并标记为移除。

模块已被取消推荐并标记为移除。
EN

Stack Overflow用户
提问于 2018-06-29 02:25:44
回答 1查看 2K关注 0票数 6

我已经将requires transitive java.activation添加到了module-info.java中,但是java-10给了我一个编译器警告module-info.java: module java.activation has been deprecated and marked for removal,尽管我在Maven pom.xml中添加了对com.sun.activation:javax.activation:1.2.0 (Automatic-Module-Name: java.activation)的依赖。

我可以通过将@SuppressWarnings("removal")添加到我的模块声明中来解决这个问题,但是我从来不喜欢抑制我可能修复的警告。我还能做些什么来与编译器沟通,我的意图是依赖第三方jar而不是该模块的内置/不推荐版本?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 03:49:27

分析

选项--show-module-resolution有助于观察这种行为。它只能在java上使用,而不能在javac上使用,但是JPMS在这两种情况下的行为都是相同的。如果您在模块路径上使用该选项和javax.activ-1.2.0.jar启动应用程序,您将看到以下一行:

代码语言:javascript
复制
root $your-module file:///$your-jar requires java.activation jrt:/java.activation

注意,java.activation是从jrt:/java.activation中提取的,而不是模块路径上的JAR。模块系统更喜欢(不幸的是,默默地)平台模块,而不是模块路径中的一个,这就是为什么不使用非反对版本的原因。

解决方案

我看到了三种不同的解决你问题的方法。

升级模块路径

您使用的JAR是平台模块java.activation的完整实现,因此您可以使用JAR替换该模块,方法是将JAR放到升级模块路径上

代码语言:javascript
复制
javac
    -d /home/nipa/code/Java-Activation/target/classes
    --upgrade-module-path ~/.m2/repository/com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar:
    -g --release 10 -encoding UTF-8
    `find . -name *.java`

然后,编译器将使用JAR替换同名的平台模块,而不推荐的内容就会消失。

作为you discovered yourself,您可以使用命令行选项配置编译器插件:

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <compilerArgs>
                    <arg>--upgrade-module-path=${settings.localRepository}/com/sun/activation/javax.activation/${javax.activation.version}/javax.activation-${javax.activation.version}.jar</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

Java 11

像java.activation这样的JEE模块已经从JDK 11中删除了,所以如果您针对11构建,那么问题就解决了。

忽视它

你正在做正确的事情,它会在几个月后自行解决,所以继续吧,无视警告。:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51093463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档