【问题标题】:How to create a Debian package for my Java Web Application?如何为我的 Java Web 应用程序创建一个 Debian 包?
【发布时间】:2012-04-05 04:00:01
【问题描述】:

Kunagi 是一个简单的 Java Web 应用程序,我们已经为其用户创建了一个二进制 .deb 包。这个包依赖于tomcat6,只是将.war文件放入/var/lib/tomcat6/webapps。这在 Debian 和 Ubuntu 上运行良好。

现在我想创建一个可以集成到 Debian 的真实源代码包。可悲的是我找不到任何教程。有很多关于 CDBS、DH7 或 javahelper 等工具及其命令的零碎信息。但是我应该使用哪一个?

我还有一些概念性的问题:

  1. 通常,通过将 webapp 复制到 web 容器的 webapps 目录来安装 web 应用程序。那么让我的包依赖tomcat6并将我的webapp直接安装到/var/lib/tomcat6/webapps中是否正确?还是应该像其他服务一样将我的 webapp 安装在其他地方,提供单独的 Tomcat 配置并由自己的用户运行?

  2. 我的 web 应用程序使用来自其他项目的库 (JAR)。通常这些都放在 webapp 目录的 WEB-INF/lib 子目录中。由于 Debian 不允许在包中包含库,因此将这些项目作为依赖项添加到我的包中并在我的 WEB-INF/lib 目录中创建符号链接是否正确?或者我该如何解决这个问题?

  3. 我的 webapp 需要写入文件(应用程序数据)。由于 Tomcat 在 Debian 上以用户 www-data 运行,因此我的 webapp 可以写入的唯一目录是 /var/lib/tomcat6/webapps。它是放置我的数据的正确位置吗?或者我的包是否应该创建类似/var/lib/my-webapp-name/ 的内容并为用户www-data 授予写入权限?

【问题讨论】:

  • 在这里向 debian 开发人员告知这个问题的最佳方式是什么?
  • 你有一个 deb 包来对 tomcat 进行战争。你能分享一下吗?我们正在尝试做同样的事情。
  • 真的需要.deb包吗?您可以使用 tomcat 和您的 web 应用程序创建 docker conatiner (docker.com)。容器就像虚拟机一样工作,bud docker 让您轻松进行更改并共享它。您的客户只需要从 Debian 存储库安装 docker 并运行一个命令即可下载并运行您的容器。如果这可以被视为一种解决方案,我可以给你一个例子。你的容器可以已经嵌入了tomcat,你可以只修改这个公共容器镜像(hub.docker.com/_/tomcat)。
  • 我不希望我的用户必须安装 docker 才能使用我的应用程序。我希望他们只是点击我的包,就像它在现代应用商店中一样。可悲的是,这对 Debian 来说几乎是不可能的 :-(

标签: java web-applications debian packaging


【解决方案1】:

嗯...如果您必须创建 Debian 软件包,那么有一个很棒的 jdeb 库,它适用于 antmaven。最好的功能是它不需要任何 dpkg 包装器,因此您的构建不会依赖于操作系统。

【讨论】:

    猜你喜欢
    • 2019-04-25
    • 1970-01-01
    • 2011-04-04
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多