打包部署项目 - Java

时间:2012-10-20 02:20:07

标签: java deployment installation packaging

我有一个Java应用程序(一个非常大的应用程序,具有许多外部.jar依赖项以及对图像的依赖性),我需要打包它,以便有人可以双击运行,例如。或者类似的东西。

它使用Java Persistence,因此它需要一个SQL连接,该连接在Java Project的Persistence.xml文件中指定。

我该如何打包?我在想:

  1. 安装过程应验证用户是否已安装MySQL,如果没有,请指示他们安装MySQL
  2. 安装过程可能会要求用户输入任何数据库的凭据,然后我可以在运行时更新Persistence.xml
  3. 这是我的两个想法......但我不确定是否有一个已知的解决方案来解决这个问题。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

我认为你应该看看像H2这样的嵌入式数据库解决方案。此外,您可以使用maven的shadowing或jar插件打包应用程序,激活jar-with-dependencies配置文件。

这将很好地帮助您检查在客户端计算机上运行的数据库服务器,并且还将为您提供在一个不错的JAR中捆绑应用程序的正确方法,尽管有点大。

Maven是一个构建生态系统和工具集,专门用于构建Java应用程序和执行代码 - 通常可以执行任何您可以想象的可以对代码执行的操作。

它有一个用于开发插件的丰富API,许多开发人员已经利用了这个功能。有许多用于构建和启动的插件,用于打包应用程序以及帮助您管理应用程序依赖性。

Maven的阴影以maven-shade-plugin的形式出现,可用here。它的作用是它可以帮助您从所有依赖项创建单个JAR文件。此外,还有maven-jar-plugin提供了一个配置文件 jar-with-dependencies 。它也可以从here访问。

另一方面,H2是一个成熟的RDBMS。这是网站:http://www.h2database.com/html/main.htmlhere是教程。

您可以在此处找到有关嵌入数据库的信息:

我还建议您使用H2 / Hibernate / Spring的组合,这是一个非常简单的设置,为您提供了非常丰富的功能和易于使用的API。

我希望这可以帮助你:)

答案 1 :(得分:0)

构建一个复杂的安装程序来检查许多依赖项,并在许多不同的平台上运行(我认为你想要的)很复杂。

我建议您查看安装程序生成器;见What is the best installation tool for java?

我在一些产品中看到的另一种替代方法是使用像Perl这样的脚本语言编写(非GUI)安装程序或配置程序。

答案 2 :(得分:0)

我使用ANT编写了一个安装程序,但没有GUI。另外,我使用了Iz Pack(很好的选择),所以我认为这取决于你想要它有多聪明,如果你应该使用它,或者非技术人员等等。