OSGi enRoute – 2.3_10 – Module
在本章中你将学到什么
到现在为止,我们对每个工程进行了单独处理。通过手工运行Maven,我们可以按正确的顺序来对不同的工程进行构建。这显然不够灵活,即使是对于一些小工程你也常常会发现编译问题。
在本章中我们会将parent pom配置成为module pom。这个pom中将会包含所有的模块(modules)并且会按照正确的顺序自动构建它们。
确保你位于顶层文件夹中:
1 |
$ cd ~/workspaces/osgi.enroute.examples.eval |
Module POM
Maven 工程可以继承自一个 parent pom。尽管理论上来说可以有多个parent pom和module pom,但是貌似如果这两者并不一致时会遇到很多问题,因此我们将module project同时也设置为parent pom。
调整 Module Pom
在默认文件夹中(~/osgi.enroute.examples.eval/)我们创建了一个pom.xml文件,它有如下内容:
1 2 |
osgi.enroute.examples.eval $ vi pom.xml // 增加 `<packaging/>`元素之后的module内容。 |
modules元素必须直接放在project元素的下方。
1 2 3 4 5 6 7 8 9 10 |
<modules> <module>api</module> <module>simple.provider</module> <module>parsii.provider</module> <module>command</module> <module>application</module> <module>bndrun</module> <module>test</module> <module>integration-test</module> </modules> |
检验
在你创建了pom.xml文件之后,你应该检查是否一切都OK了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
osgi.enroute.examples.eval $ mvn install [INFO] Scanning for projects... ... Test parsii.bndrun Tests run : 1 Passed : 1 Errors : 0 Failures : 0 [INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ osgi.enroute.examples.eval.integration-test --- [INFO] Installing /Ws/enroute/osgi.enroute.examples.eval/integration-test/pom.xml to /Users/aqute/.m2/repository/org/osgi/osgi.enroute.examples.eval.integration-test/1.0.0-SNAPSHOT/osgi.enroute.examples.eval.integration-test-1.0.0-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] osgi.enroute.examples.eval ......................... SUCCESS [ 0.252 s] [INFO] osgi.enroute.examples.eval.api ..................... SUCCESS [ 0.808 s] [INFO] osgi.enroute.examples.eval.simple.provider ......... SUCCESS [ 0.484 s] [INFO] osgi.enroute.examples.eval.command ................. SUCCESS [ 0.044 s] [INFO] osgi.enroute.examples.eval.parsii.provider ......... SUCCESS [ 0.204 s] [INFO] osgi.enroute.examples.eval.application ............. SUCCESS [ 0.086 s] [INFO] osgi.enroute.examples.eval.bndrun .................. SUCCESS [ 5.412 s] [INFO] osgi.enroute.examples.eval.test .................... SUCCESS [ 0.041 s] [INFO] osgi.enroute.examples.eval.integration-test ........ SUCCESS [ 3.019 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ... |
由于mvn的输出非常的冗长,在下面的章节中,我们将仅仅展示相关的部分。被跳过的部分将会使用…来展示
你学到了什么
在本章中我们将parent pom同时设置成了一个module pom。通过在我们创建的工程中增加一个modules部分,可以使用一个命令来按顺序构建所有的工程。
打赏一下
支付宝

微信

除非注明,博客文章均为原创,转载请标明文章地址本文地址: http://www.javafxchina.net/blog/2018/07/osgi-enroute-0203_10/