使用多模块项目开始使用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 

在做了一些研究后,我想我可能会把车推到马前。 我已经有一个包含模块项目的主项目。

  1. 那么第一步到底是什么?
  2. 创建程序集描述符文件?
  3. 将我的主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文件中的configdatascripts下的所有内容:

  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后,将在模块runtimetarget目录下创建一个zip文件。 它将包含3个指定的文件夹。