我有一个pom文件,它构建了一个利用各种Spring模块的独立应用程序,特别是它使用了集成文件模块。最初我的pom文件使用了Maven Assembly插件,但是它创建的超级jar没有正确运行。进一步的研究似乎表明,程序集插件中存在一个错误,它基本上会破坏超级jar中的依赖关系。推荐的解决方法是Shade插件,它适用于我。
但是,程序集插件能够创建一个包含超级jar和其他资源(属性文件,脚本等)的zip文件。然后,您可以使用该zip解压缩并运行您的脚本,该脚本将调用您的jar并传入其他项目(例如)。据我所知,阴影插件不会执行此附加功能。
我尝试使用配置文件组合阴影和组装插件但我无法弄清楚如何使用阴影插件来构建超级jar然后使用组件插件来构建带有其他的东西。
有没有人做过类似的事情?我只需要能够创建我的超级罐,然后使用脚本,xml和其他项目压缩超级罐。
有没有办法运行程序集插件而不将其绑定到阶段?如果有,我可以运行包并运行shade插件,然后独立运行程序集插件?如果可能的话,这将解决我的问题。
答案 0 :(得分:3)
这个答案有点迟了,但我和你一样("包装阶段":1。用阴影打造超级罐,2。将它打包成装配拉链)而我所要做的就是改变pom.xml
中指定插件的顺序。
如果在装配前指定了色调,则在相同阶段之前执行它。
答案 1 :(得分:2)
通常的做法是在多模块项目中使用单独的模块来组装拉链。还有appassembler-maven-plugin可能对你很有意思(我自己从来没有用过它)。
关于运行没有阶段的插件:这总是可行的。执行目标页面上指定的全名。在这种情况下org.apache.maven.plugins:maven-assembly-plugin:2.4:single
,或简称assembly:single
。
不要试图用配置文件来解决这个问题,它们并不适用于此。