部署Java文件

8

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

是否有任何Maven插件可用于发布二进制版本,以使用户无需使用maven?

6个回答

6

是否有任何Maven插件可以更轻松地发布二进制版本,以便用户不需要使用Maven?

使用Maven Assembly Plugin创建项目的二进制分发包,格式为zip/tar.gz/tar.bz2。该插件非常灵活 - 但也比较复杂 - 您几乎可以做任何想做的事情。然后在Maven中的意义上进行deploy,将生成的构件部署、上传到某个地方等。


3
关于依赖项,我只使用 maven dependency copy plugin 并将所有依赖项复制到./lib文件夹中,并提供一个启动脚本,使用 class path wildcard(这样您可以随意更改依赖项而不必更改启动脚本)。至于配置文件,我将其放在./config文件夹中,并在启动脚本中包含它们在我的应用程序的类路径中(前者仅适用于> java 1.6)。
因此,最终我的应用程序几乎都具有以下结构:
mystuff.jar launch.sh
./lib
./config

然后,我将压缩整个文件并提供给我的用户。整个过程可能很容易使用Maven自动化,但我承认我是手动完成的:p 如果许可证允许,您还可以使用assembly plugin将所有依赖项捆绑到单个jar中(其中包含扩展的依赖项)。这往往会使jar变得笨重,并且给用户提供更新的应用程序更加困难。另外,因为类文件被覆盖或其他原因,我个人仍然坚持使用./lib文件夹。

1
您可以使用Oracle的Ant或Maven脚本:

http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

上述操作不仅会编译您的代码并创建jar文件,还会创建二进制可执行文件(Windows exe文件或Mac app文件)。它还可以创建本地安装程序。此外,它允许您在分发中包含JVM,因此最终用户无需安装Java。

1

有一个叫做launch4j的工具,如果你能够成功地使用它,就可以将Java应用程序打包成适用于你平台的可执行文件。


1
如果您的部署目标支持RPM文件,我强烈建议您调查rpm-maven-plugin。它允许您轻松地将项目构件(包括依赖项)映射到RPM软件包。
我一直在中型应用程序部署中成功使用它。

0

请看一下Appassembler Maven Plugin。您可能还想将其与Assembly Maven Plugin结合使用。

使用appassembler插件通过指定可执行文件名称和主类来生成一组“程序”。您还可以让它预先添加并创建一个etc目录,您可以在其中添加配置文件。

如果生成启动脚本和二进制文件目录不足够,您可以使用assembly插件将其他文件(例如配置文件)复制到适当的目录中,并/或将应用程序打包成存档文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接