栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我需要使用Maven构建具有非模块化依赖项的JDK 9项目

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我需要使用Maven构建具有非模块化依赖项的JDK 9项目

包括一些最近的更新,我会 尽力 回答。

更新

  • Java 9已于2017年9月21日公开发布。

  • 该最低兼容版本的

    maven-compiler-plugin
    在今天的日期
    3.7.0

@Tunaki已经分享了如何配置它以构建JDK 1.5至8和JDK 9的兼容版本。

从问题和注释中假设,您已经知道自动模块,并将所有模块依赖项放在模块路径上。

如果我知道一些构件不是模块化的,我可以告诉Maven将它们放在classpath上吗?这样我就可以避免自动模块,而无需声明它们?

对于在maven pom中指定的工件

<dependencies>
以及
module-info.java
当前模块中未包括的工件,最终都将其留下,以
未命名模块的 形式从类路径中进行访问

如果我坚持使用自动模块,是否可以告诉Maven以某种方式可传递地允许我的依赖项需要引入的任何内容?例如Weld,CDI API等的其他部分。

,因为自动模块不包含显式声明的

module-info.java
,所以没有这种方法可以定义 _
requirestransitive
_ 当前模块可能需要的任何传递依赖。

从我的一个过去的经验,如在详细Maven的任何传递依赖

dependency:tree
的是需要在该模块编译时就必须使用被明确定义
requires
module-info
当前项目中。

为什么我要声明我的项目需要模块而不是直接使用的实际原因是什么?例如,weld.environment.common **

  • 您不需要

    requires
    为模块指定在编译或运行时不需要的模块。

  • 如果项目在运行时不需要某个依赖关系,而在编译时需要一个依赖关系,则需要确保 _

    requires static
    _ 在声明中使用定义此类模块。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号