Maven tar目标输出文件夹

时间:2014-08-01 04:17:06

标签: java maven build

我目前有一个maven项目结构如下:

-parent module/   
  -child_module1/
     -scripts_directory/
     -src/
        -main/
           -java/
           -resources/
     -test/

  -child_module2/
     -scripts_directory/
     -src/
        -main/
           -java/
           -resources/
     -test/  

  -child_module3/     
    ... (same structure as above child modules)

构建项目时,它会为每个子模块创建一个jar,并将其传输到执行路径之外的公共目录;将每个子模块的所有dependencies复制到同一目录中;将每个子模块的scripts_directory的内容复制到另一个公共目录中;最后将其resources全部放入另一个公共目录

因此运行mvn install后的最终结构是:

/packages/mymavenapp/
  -conf/ (contains all the resources of each child module's resources)
  -lib/ (contains all the child module jars (compiled) and their dependencies)
    -child_module1.jar
    -child_module2.jar
    -child_module3.jar
    -spring jars 
    -more dependency jars
  -scripts/ (contains all the contents of each child's scripts_directory)
    -run_child1_jar.pl
    -run_child2_jar.pl
    -run_child3_jar.pl

我目前正在使用此构建结构。我想将tar目录/packages/mymavenapp导入mymavenapp.tar.gz并将其推送到其节点。

我知道我可以有一个shell脚本来覆盖这个目录但是想知道我是否可以在maven构建周期中轻松完成这个

编辑:

最终目标目录的位置与目标目录

的重要性不同
 mymavenapp/

可以在父模块的目录中,只要mymavenapp/内的结构与其内容保持一致即即。 mymavenapp/conf/; mymavenapp/lib/; mymavenapp/scripts/

1 个答案:

答案 0 :(得分:1)

您可以在saperate构建配置文件中使用maven-assembly plugin,在构建调用maven构建结束时使用该构建配置文件

程序集插件非常灵活,它需要一个配置文件,您可以在其中定义输入文件以及该文件在tar文件中的位置以及最终tar文件的位置,例如