当前位置: 首页 > 知识库问答 >
问题:

项目Jigsaw vs Maven

孔茂
2023-03-14

来自Jigsaw项目:

使开发人员更容易为Java SE和EE平台构建和维护库和大型应用程序

我正在尝试了解什么是Jigsaw项目,到目前为止,Jigsaw项目的目标似乎与我们使用Maven(或Gradle)依赖关系管理所做的有些重叠:

  • 构建像Maven这样的工具是一种威胁吗

共有2个答案

蒋承教
2023-03-14

模块对构建工具没有任何威胁。模块补充了构建工具,因为构建工具在构建时构建了工件及其版本的依赖关系图,而模块在构建时和运行时强制执行工件/模块(不包括版本)的依赖关系。

从模块系统的状态来看:

"A module’s declaration does not include a version string, nor
constraints upon the version strings of the modules upon which it
depends. This is intentional: It is not a goal of the module system
to solve the version-selection problem, which is best left to build
tools and container applications."
晁聪
2023-03-14

Jigsee之后,public将仅在JAR范围内公开。要查看JAR之外的类,必须导出它。

Java将强制模块化,因为任何模块间交互都必须在模块信息文件中指定。

例如,如果您生成一个WAR,它将几乎保持不变,但WAR中的所有JARs包都必须定义一个模块信息(或者不定义它,并将其视为自动或未命名的模块)。

Maven有两个主要功能:依赖关系管理和构建:

  • 依赖关系管理意味着Maven可以确定库的版本并从存储库下载它们

总之:Maven仍将负责构建,但必须学习如何使用Jigsaw模块编译和打包。

 类似资料:
  • sbt子项目是否可以有自己的目录?或者只有根项目可以用。Scala帮助器文件为构建项目的目录?。下面是我目前的建筑结构。无法访问中定义的对象。 更新:sub-project-1/build.sbt中的以下sbt定义 由于以下错误而失败 Common在/my-project/projects/Common.scala中定义,没有问题。但是Localhost是在/my-project/sub-proj

  • 项目是资源的拥有者,云联壹云平台上的资源都是以项目向用户提供服务。 项目是资源的拥有者,云管平台上的计算资源(如虚拟机、裸金属、镜像、硬盘、快照等)等都以项目为单位向用户提供,用户只有加入项目后才可以使用项目中所有的资源。 项目来源: 系统部署完成后,默认创建system项目。 在域下新建项目。 同步公有云上的项目。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “认证与安全/认证

  • 以项目的维度展示每个项目的费用分析情况。 以项目的维度展示每个项目的费用分析情况. 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “费用/费用分析/项目” 菜单项,进入项目菜单项。 查看项目的费用 该功能用于查看系统中所有项目的费用情况。 在项目列表中默认展示系统中每个项目的本月消费和本年消费,支持单击顶部图标查看本月、上月、本季度、上季度、本年或自定义时间的消费情况。 当平台只存

  • Commercial Support Commercial support is provided by Typesafe <http://www.typesafe.com>. Akka is part of the Typesafe Reactive Platform <http://www.typesafe.com/platform>. Mailing List Akka User Googl

  • 默认 Library 只会发布 release variant(变种)版本。该版本将会被所有引用它的项目使用,无论编译出多少个版本。由于 Gradle 的限制,我们正在努力解决这个问题。你可以控制哪一个 Variant 版本作为发行版: android { defaultPublishConfig "debug" } 注意这里的发布配置对应的值是完整的 variant 版本名称。reles

  • 引用 Library 项目与引用其他项目一样: dependencies { compile project(':libraries:lib1') compile project(':libraries:lib2') } 注意: 如果要引用多个 Library,那么引用的先后顺序将非常重要。这类似于旧的构建系统的 project.properties 文件中的依赖顺序。

  • Library 项目跟常规的 Android 项目只有小部分差异。 既然构建 Library 跟构建应用不同,那肯定用不同的插件,但是两个插件内部其实共享大部分同样的代码,且由同一个 jar 包提供:com.android.tools.build.gradle buildscript { repositories { jcenter() } dependen

  • 上面提到的构建文件中有默认的文件夹结构。Gradle 遵循约定优先于配置的概念,在尽可能的情况下提供合理的默认配置参数。最基本的项目有两个 “source sets” 组件,分别存放应用代码及测试代码。它们分别位于: src/main/ src/androidTest/ 里面每个存在的文件夹对应相应的源组件。对于 Java plugin 和 Android plugin 来说,它们的 Java 代