gpt4 book ai didi

java - 相当于 Java 世界中的 "make install"

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:49 27 4
gpt4 key购买 nike

TL;DR:在 Java 世界中是否有一种标准方法,让构建工具安装它们刚刚构建的可执行文件(如 C 语言的 make install世界)?

(我很高兴有一个只适用于 Linux 的解决方案)

更多详情:

我有一个通过 github 分发的 Java 项目。编译和依赖项由 maven 2 管理。运行 mvn package 使用我的 jar 和运行时所需的依赖项构建一个 tarball,加上一个设置类路径和启动主 jar 的可执行脚本:

#!/bin/bash
cpBase="$(dirname "$0")"
java -cp "$cpBase/*" dw.cli.Program $@

因此,如果有人想在她的计算机上安装此软件,则需要:

  • 运行mvn package
  • 然后解压缩 tarball 并将内容复制到她的 PATH 目录中。

另一方面,我喜欢自动工具的工作方式:用户不需要手动复制任何东西,因为构建步骤 make install 会为她处理安装。

我可以通过 pom.xml 中的 ant 任务使用 cp 来模拟这种行为,但我更感兴趣的是学习 Java 的良好实践,而不是提供非标准的行为。

好像maven doesn't provide this behavior .另一方面,我完全不知道其他 Java 构建工具可以为此做些什么。


编辑:

据我所知,mvn installmvn deploy 不符合我的需要,因为它们会将我的 jar 安装到我的本地或远程存储库中。而我想在我的 PATH 上安装我的可执行文件(例如:在 /usr/local/bin 中安装我的包装脚本)

最佳答案

问题被标记为“gradle”,所以我将提供 Gradle 答案。

我认为您是在构建应用程序,而不是库。在这种情况下,Gradle 会考虑周全地提供 application 插件。

apply plugin: 'application'

该插件将为您提供 rundistZipdistTarinstallDist 任务,这些任务正是他们听起来像。查看文档 the official web site .

请注意,默认情况下,installDist 任务不会将软件放在系统的任何中央位置。相反,它将安装在 build 的子目录中,其中保存了临时文件。您可以在任务上设置 destinationDir 属性来解决这个问题。

关于java - 相当于 Java 世界中的 "make install",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30049730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com