我目前有一个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/
答案 0 :(得分:1)
您可以在saperate构建配置文件中使用maven-assembly plugin,在构建调用maven构建结束时使用该构建配置文件
程序集插件非常灵活,它需要一个配置文件,您可以在其中定义输入文件以及该文件在tar文件中的位置以及最终tar文件的位置,例如