部署Java文件

not*_*oop 8 java deployment maven-2

部署Java独立应用程序以及任何所需的jar依赖项,配置文件和启动脚本的最佳实践(和启用工具)是什么?

是否有任何Maven插件可以轻松发布二进制版本,因此用户不需要使用maven例如?

Pas*_*ent 6

是否有任何Maven插件可以轻松发布二进制版本,因此用户不需要使用maven例如?

使用Maven Assembly Plugin创建一个二进制发行版,作为项目的zip/tar.gz/tar.bz2.这个插件非常灵活 - 以一些复杂的代价 - 你几乎可以做任何你想做的事情.然后deploy(在maven意义上)生成的工件,将其上传到某个地方等.


Enn*_*oji 3

至于依赖项,我只是使用maven 依赖项复制插件并将所有依赖项复制到 ./lib 文件夹中,并提供使用类路径通配符的启动脚本(这样您就可以根据需要更改依赖项,而无需更改依赖项)必须更改启动脚本)。至于配置文件,我将其放在 ./config 文件夹中,并再次将其包含在启动脚本中我的应用程序的类路径中(诚然,前者仅适用于 > java 1.6)。

所以最后我几乎所有的应用程序都有以下结构:

mystuff.jar launch.sh
./lib
./config
Run Code Online (Sandbox Code Playgroud)

然后我会将整个内容压缩并提供给我的用户。整个过程可能很容易使用 Maven 实现自动化,但我承认我是手工完成的:p

如果您愿意并且许可证允许,您还可以使用assembly plugin将所有依赖项捆绑到一个 jar 中(内部包含扩展的依赖项)。这往往会使罐子变得笨重并为用户提供更新的应用程序。更加困难。另外,由于类文件被覆盖或其他原因,我多次遇到问题,所以我个人坚持使用 ./lib 文件夹。