我有一个Java控制台应用程序,直到现在它在Netbeans IDE中开发。当Netbeans构建应用程序时,它将创建dist
目录,并将该应用程序构建为一个jar归档文件,并将该应用程序拷贝到此目录中,并复制所有依赖项。这个目录可以被复制到最终目的地并运行。真实世界中如何部署Maven应用程序?
现在我试图将这个项目转移到Maven。一切顺利,我可以编译和打包我的应用程序,并将一个jar创建到target
目录中。我使用maven-jar-plugin
在清单中设置主类,并使用maven-shade-plugin
将所有源打包到一个jar文件中。
我想问问你这个Maven项目是如何部署在现实世界中的?我应该使用所有target
目录,将它复制到最终目的地并按照我以前用Netbeans的方式运行?当我不使用maven-shade-plugin
时会产生什么结果 - 所有库都定义为依赖关系?我问,因为在我的测试项目中这些库不存在于target
目录中。
我的问题 - 我有一个Java控制台应用程序“A”打包通过Maven(没有maven-shade-plugin
)和Linux服务器“S”应该运行该应用程序。我可以将所有目标目录手动复制到服务器“S”,还是有一些更好/更自动的方式,这在现实世界中如何解决?
谢谢!我会看看Maven Assembly Plugin,但还有一个问题,你是否将自己的目录结构(或zip,tar.gz归档文件)复制到最终位置,或者是否使用另一个插件?如果是这样,哪一个?你能为我提供一份你的配置Maven Assembly Plugin文件吗?先谢谢你。 – user2148736
必须有插件才能复制文件等,您可以在Maven的后期包装阶段绑定这些文件,将您的存档复制到某个位置。您也可以使用Ant Run Maven Plugin将归档文件最终移动到某个位置。 –