我经常遇到使用Maven作为构建工具的Java应用程序或库的发行版.
遗憾的是,其中一些不提供独立(或可再分发)的罐子.
是否有可能以这种方式构建基于Maven的应用程序,构建结果包含所有依赖项并且可以重新分发以便开箱即用?
我试着建立Jackrabbit的OCM模块.出于一些非常"智能"的原因,没有可下载的独立版本.
所以我用Maven构建了Jackrabbit(Jackrabbit的源包包括OCM),并获得了与apache存储库中相同的jar .jar 不包含必要的依赖项,对我来说没用.
我有一个多模块maven项目,我创建了一个新的模块,依赖于其他3个模块.(我已经有一个生成.war文件的web app maven模块,现在我需要这个)
该模块的输出是.jar,它还有一些资源:
现在我想生成一个生产就绪文件夹,以便我可以将其上传到我的服务器.我希望maven可以为我做这件事.
我需要以下布局:
myjar.jar
/libs/ (the 3 other maven modules that are dependancies)
/resources
Run Code Online (Sandbox Code Playgroud)
此外,还有一些通用的依赖项,我的父pom.xml就像slf4j/log4j /我也需要打包.
如果我可以添加一个开关到mvn会产生这样的效果会很酷:
mvn clean install production
Run Code Online (Sandbox Code Playgroud)
我打算通过命令行在我的服务器上运行它.