新建模块 pom.xml依赖无法识别_使用模块依赖关系,第2部分

模块依赖性是指一个模块依赖于或需要另一个模块。模块依赖性在“ 在Eclipse IDE中使用Java 9开发模块,第1部分 ” 一文中的“ 声明其他模块的依赖性”部分中介绍。在两篇文章的第一篇“ 使用模块依赖关系,第1部分 ”中,我们为两个模块创建了两个Java项目,一个主模块和一个依赖模块。我们无法在一个Java项目中创建这两个模块,因为Eclipse IDE不支持单个项目中的多个模块。创建了两个项目后,在这篇续篇文章中,我们将每个项目导出到一个单独的JAR文件中。在早期的教程中讨论了将模块导出和用作JAR文件,“使用Java 9模块作为JAR文件。“目前不支持在单个JAR中添加多个模块,但计划用于未来的Java版本。在本文中,我们将讨论配置两个Java项目并运行主模块应用程序演示模块依赖。本文包含以下部分:

设置主Java项目的构建路径

之前开发的两个Java项目存在错误,如图1中的红色标记所示。指示错误是因为两个模块在单独的项目中定义,并且依赖项目不在主项目的构建路径中。

d79a1c3c1b04ee545cd82688dcab4aa0.png

图1:带有错误的Java项目

在本节中,我们将配置MainModule项目的构建路径,以将HelloJavaModule项目添加到构建路径。右键单击Package Explorer中的MainModule,然后选择Build Path> Configure Build Path,如图2所示。

87cbb9d6553d6e4047fa2829bc985241.png

图2: Package Explorer>构建路径>配置构建路径

Properties窗口中,将显示Java Build Path默认设置,如图3所示。

412ea08f1dd7de7e9d6039950229c144.png

图3: Java构建路径

选择Projects选项卡并选择Modulepath,如图4所示。单击Add ...

7472cf8b6b407f80f356ca473e1a5e31.png

图4: Java构建路径>项目>模块路径>添加...

要求的项目选择窗口显示的依赖项目HelloJavaModule,如图5.选择HelloJavaModule项目,然后单击确定。

3bc7336d9d7490f04c1ed320409bfb6d.png

图5:选择要添加的项目

该HelloJavaModule项目被添加到ModulePath进行(见图6)。单击“ 应用并关闭”

af52140a7abed05e501484c5c7aee570.png

图6:添加到Modulepath的Java项目HelloJavaModule

错误和红色标记将从MainModule项目中删除,如图7所示。

4c1635d3ac0aefe804356be177542a0a.png

图7:从MainModule中删除的错误

将主Java项目导出到JAR文件

将HelloJavaModule项目添加到MainModule项目的构建路径只会消除构建/编译时错误。对于运行时,我们需要将每个模块导出到JAR文件,并将JAR文件添加到运行项目运行时的运行时模块路径中。需要将JAR文件导出到同一文件夹,以便我们能够配置模块路径而无需跨项目引用模块。如前所述,尚不支持多模块JAR,但计划在更高版本的Java中支持。

要将MainModule项目导出到JAR文件,请右键单击Package Explorer中的MainModule并选择Export,如图8所示。

5cd5251698d74285b7dec4e5e32fbf4b.png

图8: Package Explorer> MainModule> Export

Export窗口中,选择Java> JAR file,如图9所示,然后单击Next。

3708d18811703d6638f2d947b3e09654.png

图9:导出> Java> JAR文件>下一步

JAR文件规范中,选择要导出为MainModule的资源,如图10所示。选择导出目标为MainModule modules mainmodule.jar。点击下一步。

b1554c0c453e34a8a93a508fe3a498bd.png

选择默认的JAR Packaging Options(参见图11),然后单击Next。

0200dec0712fef4465479ef08320abfa.png

图11:选择包装选项

接下来,自定义JAR清单规范,其中包括选择应用程序入口点的类。单击Browse for Main class,如图12所示。

5de0833c70a21d2f76ca2f9340247cd0.png

图12:主类>浏览

Select Main Class中,选择main.module包中的MainModule类,如图13所示,然后单击OK。

c15256d0df202a0e511ac1c582c13ef9.png

图13:选择主类

主类中选择,单击完成,如图14。

db45332381308d3665b5aebc33721a1e.png

图14: JAR导出>完成

所述mainmodule.jar被导出到MainModule /模块目录,如图包资源管理器在图15中。

95c020331ec52283428678e17928399f.png

图15:导出的JAR mainmodule.jar

将依赖项Java项目导出到JAR文件

在本节中,我们将依赖项目HelloJavaModule导出到与导出主模块JAR相同的目录中的JAR文件。要将HelloJavaModule项目导出到JAR文件,请在Package Explorer中右键单击该项目,然后选择Export(参见图16)。

7e2dab8fe8b80380287903f44a5ad390.png

图16: Package Explorer> HelloJavaModule> Export

Export窗口中,选择Java> JAR file,如图17所示,然后单击Next。

c81e66dc8c0657d6a2cf857011b1d4c0.png

图17:导出> Java> JAR文件>下一步

JAR文件规范中,选择要导出为HelloJavaModule的资源,如图18所示。选择与主模块JAR相同的导出目标,即MainModule modules目录。JAR文件名需要不同,并且是helloJavaModule.jar。点击下一步。

6b0a1bef2a494b86139d086571027379.png

图18:依赖性JAR的JAR文件规范

选择默认的JAR Packaging Options,如图19所示,然后单击Next。

eaa965d9624983a3bfd89d5cd5030b02.png

图19:选择包装选项

接下来,自定义JAR清单规范。因为依赖项目不包含应用程序入口点的类,所以将Main类字段保持为空,如图20所示,然后单击Finish。

1569c6db805dcfd8b92bb1d7e07fb443.png

图20:依赖项目没有主类

所述helloJavaModule.jar被导出到MainModule /模块目录,如图包资源管理器在图21中。

364666e96342b029ad531ad4a803fa83.png

图21:导出的JAR helloJavaModule.jar

添加运行配置

要运行主模块Java应用程序,我们需要为MainModule项目创建运行配置。右键单击Package Explorer中的MainModule,然后选择Properties,如图22所示。

0eb206514af39800dd221d449453034d.png

图22: Package Explorer> MainModule> Properties

在Properties窗口中,选择Run / Debug Settings并单击New ...以创建新的启动配置,如图23所示。

0c0d6be684747c880452ee7c7fda4c88.png

图23:属性>运行调试设置>新建...

Select Configuration Type中,选择Java Application,如图24所示。

e474726dd78609e89ad7a738ed6cd2f1.png

图24:选择配置类型作为Java应用程序

在配置向导中,在Name字段中指定一个名称(MainModuleConfig),并选择Project作为MainModule,单击Search ...作为Main类,如图25所示。

39acf51b2c2df29d15f10051a68a4598.png

图25:设置启动配置属性

Select Main Type中,选择main.module.MainModule类型(参见图26),然后单击OK。

948cd59c781b5037119e8e8585aa6240.png

图26:选择主要类型

主类中选择,单击参数选项卡以选择下一个虚拟机指定参数时,如图27。

69c4a8c65403ccd8000aa5d628231789.png

图27:选择Arguments选项卡

将以下VM参数添加到VM参数字段,如图28所示。

--module-path modules / helloJavaModule.jar; modules / mainmodule.jar -m mainModule / main.module.MainModule

所述--module路径 ARG设置模块路径两个JAR用于两个模块。该-m ARG设置模块。单击Apply,如图28所示。

7e278814282c9ed946f42aa0cd2e0747.png

图28:应用运行配置设置

单击OK,如图29所示,完成运行配置。

91cf76e21f9d70aaac5a03e56c5773fc.png

图29:完成运行配置

将创建一个新的运行配置MainModuleConfig,如图30所示。单击Properties窗口中的Apply和Close

da742714e8fcb6af2fa5b254dd33cd10.png

图30:为MainModule项目应用属性

运行主模块Java应用程序

接下来,我们将测试主模块是否通过运行主模块应用程序来调用依赖模块。在Package Explorer中右键单击MainModule.java,然后选择Run As> Java Application(参见图31)。

8f026f61783ee4c66050d573de4dd71a.png

图31: Package Explorer> MainModule> Run As> Java Ap

Java应用程序的输出显示在Console中,如图32所示。主模块中的“Hello from”消息与消息“Exported Java Module!”结合在一起。从依赖模块输出消息“Hello from Exported Java Module!”。

aaca9a67ba8052de923a3fe693687c80.png

图32:控制台输出

在两篇文章中,我们讨论了在Java 9中使用模块依赖性。

欢迎大家在评论区进行留言讨论,写的不好莫怪...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值