【问题标题】:How can I package a maven jar and output multiple copies of the resulting JAR file to different folders?如何打包 maven jar 并将生成的 JAR 文件的多个副本输出到不同的文件夹?
【发布时间】:2021-04-05 17:10:30
【问题描述】:

和标题说的差不多。我正在为在 BungeeCord 下运行的服务器构建 Minecraft Spigot 插件,并在 IntelliJ 中运行 mvn 包插件会导致生成的 JAR 文件位于项目的“目标”文件夹中。相反,我需要将生成的 JAR 的多个副本输出到各种服务器的多个“插件”文件夹中。我不确定如何或是否可以使用 Maven,但我想知道 pom.xml 中是否有办法做到这一点。每次构建 JAR 时都必须复制它会减慢开发过程。任何帮助将不胜感激!

【问题讨论】:

  • Re "multiple copies [...] into multiple "plugin" folder for various servers" – 这是本地副本还是上传到服务器?
  • Maven 是构建工具而不是部署工具...编写脚本来复制/部署生成的工件...
  • @khmarbaise 嗯,它有一个deploy 阶段和插件。 :)
  • @khmarbaise 是的,我知道你很清楚这一点,我也很清楚。请注意“:)

标签: java maven minecraft


【解决方案1】:

您应该能够使用 symlinks(符号链接)实现相同的目的。它允许文件系统有一种方法来引用另一个文件位置,而无需实际制作显式副本(有点像快捷方式)。这也更符合 maven 的哲学精神,即每个项目都应该只构建一个工件。

如何制作符号链接取决于您的操作系统。您需要为需要“复制”到的每个单独位置创建一个符号链接。

Mac / Linux:

ln -s /project/target/my.jar /project/server/plugin1

窗口:

mklink /project/target/my.jar /project/server/plugin1

有关符号链接的其他信息(例如,如果您需要删除):

https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/ https://www.howtogeek.com/297721/how-to-create-and-use-symbolic-links-aka-symlinks-on-a-mac/

在 maven 中构建多个 jar 相当棘手。有关更多详细信息,请参阅这篇文章 - 如果这是您真正想要的,它建议使用 maven ant 插件,但我建议不要使用这种方法。符号链接应该更易于使用。

Ant to Maven - multiple build targets

【讨论】:

    猜你喜欢
    • 2011-06-09
    • 2017-08-23
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2021-11-24
    • 2017-08-07
    • 1970-01-01
    • 2015-12-29
    相关资源
    最近更新 更多