java - 将 Maven Artifact 映射到 Debian 包

标签 java maven build dependencies deb

我必须为当前项目中的所有应用程序创建 Debian 软件包。这些是像“java -jar ....”一样启动的独立应用程序。 每个项目都提供自己的 JAR Artifact ,该 Artifact 依赖于其他几个项目 Artifact ,并且存在许多第 3 方依赖项(编译和运行时)。

现在我可以构建一个 debian 包,其中包含所有需要的 JAR(传递性依赖项、一些资源文件、脚本等)。

我还在我的包的控制文件配置中指定了 JRE Debian 依赖项,以便 java 也被安装。

我使用 codehaus unix-maven-plugin 创建 deb 包。

JAR 安装到/usr/share/java,脚本安装到/usr/bin 等。

只要我在服务器上只安装一个软件包就可以了:安装和运行时都会成功。但是,如果已经安装了一些提供我的包中包含的 JAR 之一的软件(例如 slf4j-api-1.5.10.jar),那么我在安装该包时会遇到问题。包管理器提示文件冲突。当我尝试将两个应用程序安装到显然提供一组相同 jar 文件的同一服务器时,也会发生这种情况。

我的问题的解决方案是不包含其他 debian 软件包可用的 JAR 文件,而是在控制文件的“Depends”部分中声明这些软件包。 当然,并非 maven 存储库中的每个 JAR 都有相应的 debian 软件包可用,但对于那些缺失的 Artifact ,我可以自己创建其他 debian 软件包。

是否有任何可用的方法将 maven 依赖项转换为 debian 依赖项列表(控制文件中的“Depends”部分),以便我的交付不会重新分发可作为外部 debian 包使用的 JAR 文件?

我可以在自定义 Maven 插件中使用任何在线服务来查找可能提供我的应用程序所需的 JAR 的 debian 软件包吗?

谢谢

最佳答案

您可以使用“jdeb-maven-plugin”创建 debian 软件包 https://github.com/tcurdt/jdeb

关于java - 将 Maven Artifact 映射到 Debian 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14461486/

相关文章:

java - BoxLayout 未显示所有组件

java - Scala:在 Scala 中使用来自 Java 的多个构造函数

java - 警告 [org.directwebremoting.dwrp.BaseCallHandler] 处理批处理时出现异常

java - 如何向 javafx-maven-plugin 创建的 exe 安装程序添加许可证?

java - 如何在 Maven 构建期间删除/排除 Log4j?

android - Dagger2 生成的类突然从 Android Studio 中消失了

java - 将数字替换到包含该数字的行中

java - 打开 Eclipse 时缺少 M2_REPO 类路径变量

java - 如何为具有外部依赖项的 Java 项目配置 Maven 构建?

build - cmake 项目仅构建一个特定的可执行文件(及其依赖项)