【问题标题】:Is there a way to package jar dependencies for running the java class in a standalone environment有没有办法打包 jar 依赖项以在独立环境中运行 java 类
【发布时间】:2011-10-20 04:29:10
【问题描述】:

我们有一个基于 Java 的小型服务器(一个使用 MySQL 和休眠获取数据的简单应用程序),它需要独立运行(例如java -cp <....> com.foo.Server)。

目前我们在整个构建过程中使用 mvn,并使用 mvn exec:java (http://mojo.codehaus.org/exec-maven-plugin/java-mojo.html) 使用 maven 运行应用程序。

我们希望将此应用程序与其 jar 依赖项打包在一起,这样我就可以使用上面给出的命令在生产机器上运行它(不会有 maven)。

META-INF\persistence.xml 下的数据库信息

<property name="hibernate.connection.url" value="jdbc:mysql://192.168.1.1:3306/foo/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="u1"/>
<property name="hibernate.connection.password" value="u1pass"/>
  1. 我应该如何打包这个应用程序或创建一个部署映像,我可以将它部署到生产环境中。
  2. 如何将数据库凭据传递给生产框中的此应用程序。目前,信息包含在访问 jar 中(在 META-INF\persistence.xml 下)。

【问题讨论】:

    标签: java hibernate maven


    【解决方案1】:

    需要考虑的几个选项:

    【讨论】:

    • 我可以使用汇编器选项来打包 [1] 的依赖项。任何解决问题的指针 [2]
    • 在环境变量或应用程序读取的本地属性文件中设置它们是存储特定于服务器的凭据或信息的常用选项。
    【解决方案2】:

    市场上有各种打包java应用程序的软件,例如Installshield等。您也可以将您的应用程序导出为可运行的jar文件。我认为所有最新的 IDE 都支持打包 java 应用程序。让我知道您使用的是哪个 IDE,我会尝试具体回答您的问题。

    【讨论】:

    • 我们目前没有使用任何 IDE,只是在整个构建生命周期中依赖 mvn。
    猜你喜欢
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 2011-01-28
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 2020-12-03
    相关资源
    最近更新 更多