使用多模块项目开始使用Maven程序集插件
我们有一个人和我们一起使用maven-assembly-plugin打包所有依赖项。 他已离开公司,我正试图弄清楚他是如何做到这一点的。 我刚刚学习maven-assembly-plugin。
我们的应用程序分为Maven POM项目和相关的模块项目。 在下面的示例中,我已经包含了运行时模块项目。 我尝试在我的应用程序中创建一个名为runtime的模块项目,但是当我做出任何更改时,它会失去与父项目的关联。
我们正在使用Netbeans。
+- pom.xml +- Simulator +- pom.xml +- comms +- pom.xml +- src +- main +- java +- framework +- pom.xml +- src +- main +- java +- core +- pom.xml +- src +- main +- java
这就是我想要创建的:
+- runtime +- pom.xml +- src +- assemble +- assembly (xml file) +- target +- Simulator +- archive-tmp +- classes +- test-classes +- Simulator (zip file) +- config +- data +- scripts
在做了一些研究后,我想我可能会把车推到马前。 我已经有一个包含模块项目的主项目。
- 那么第一步到底是什么?
- 创建程序集描述符文件?
- 将我的主pom文件编辑为父级?
以下是一些有用的问题和答案,但我仍然感到困惑。 有人可以告诉我先做什么吗?
具有特殊结构的多模块项目的Maven组装
如何使用Maven组件插件与多模块maven项目
编辑:
我弄清楚为什么模块从我的主项目中消失了。 Netbeans的! 我重新启动它,我的运行时模块就在那里。
那么,现在我需要在运行时模块中编辑我的POM文件?
如果我正确地读了你的问题,你想要做的是将一个新的Maven模块(称为runtime
)添加到现有项目中,并在这个新项目上使用maven-assembly-plugin
来打包它。
然后,第一步是创建Maven模块。 我不确定Netbeans是否提供了这样做的设施(Eclise确实如此),但它归结为:
- 在父POM的
部分中,为runtime
添加一个新的
。 - 在父POM的同一目录级别创建一个名为
runtime
的新文件夹 -
在这个新文件夹中创建一个文件
pom.xml
将根POM声明为父POM,如下所示:... ... ...
然后,您需要配置maven-assembly-plugin
来执行此新模块的打包。 这是在程序集描述符的帮助下完成的,其格式在此处记录 。
为了给你一些开始,请考虑以下POM配置和程序集描述符,它将打包在zip文件中的config
, data
和scripts
下的所有内容:
maven-assembly-plugin 2.6 make-assembly package single src/assemble/assembly.xml
使用assembly.xml
:
distribution zip config /config data /data scripts /scripts
在父POM上运行mvn clean install
后,将在模块runtime
的target
目录下创建一个zip文件。 它将包含3个指定的文件夹。