maven的新手......来自蚂蚁世界
我需要创建一个带有几个文件的客户端jar,这些文件将使我的客户能够写入我的Db并对我的服务进行休息调用。 这些主要是包装Rest连接和db客户端的类。
是否有可能将此工件作为我的主要maven项目的副作用? 例如:当我运行mvn包时,main项目会生成一个包,但是我想通过提供一些其他参数来生成客户端jar ....
答案 0 :(得分:1)
这里需要的是一个多模块maven项目。
结构如下:
-- Parent Module
----- Child 1 Module
----- Child 2 module
您可以在child 1
模块中获取主应用程序的所有代码/文件,并将客户端的所有代码/文件放在child 2
模块中。
父模块只是一个聚合器,它生成类型为pom
的工件。而您的每个子模块都会生成单独的jars
。
然后你可以在你的客户端中使用第二个罐子。
要详细了解多模块项目的工作原理,请查看此link。
答案 1 :(得分:0)
标准的Maven方式是"一个项目,一个jar"。这意味着实现目标的最简洁方法是建立一个多模块项目,在这个项目中,您可以使用一个模块来实现正常的"罐子和一个为您的"客户"罐。但还有其他可能性:
如果您正在谈论ejb,您可以使用maven-ejb-plugin并创建客户端工件。不幸的是,两个工件然后共享相同的pom(因此,相同的依赖关系)。
您可以使用maven-assembly-plugin来组合一组文件并将它们作为侧面工件进行部署(与(1)中的问题相同)。
您可以使用maven-install-plugin和maven-deploy-plugin来安装/部署完全不同的工件以及主工件。这些工件需要在之前创建,例如通过自定义maven插件。