java - 如何在Maven中进行自定义打包?

标签 java maven zip packaging

我想在运行 mvn clean package 时创建 .zip 文件而不是 .jar 文件。 .zip 文件应具有如下目录结构 -

/
 |- bin
 |- conf
 |   |- All Property Files
 |- lib
     |- All JAR Files (packaged jar and its dependency jar OR a single fat jar)

我搜索了很多,但我最终得到的唯一结果是更改主项目文件夹的目录结构,而不是打包的内容。我知道各种打包类型,如 JAR、WAR、EAR 等,但不确定是否可以制作 .zip 文件。

是否可以制作 .zip 而不是 JAR 文件?如果是这样,如何以及可以操纵其目录结构?

<小时/>

更新:发现 answer关于如何创建 .zip 文件。但它不包含有关更改目录结构的信息。

<小时/>

更新:我自己解决了。请参阅下面的答案。

最佳答案

用于自定义打包的专用 Maven 插件是 Maven Assembly plugin 。 可以使用此插件将打包结构和类型更改为:

  • 压缩
  • tar
  • tar.gz(或 tgz)
  • tar.bz2(或tbz2)
  • jar
  • 目录
  • war
  • 自定义(请参阅 ArchiveManager)

There is the documentation包含插件配置示例。

根据文档,您需要:

  • 设置格式(zip、tgz...)
  • 为您当前的个人资料激活插件
  • 在专用程序集 bin.xml 文件中定义特定的包结构,该文件默认位于 src/assembly 文件夹中
  • 显然,调用 mvn 包阶段(安装期间自动...)以便奇迹发生:)

关于java - 如何在Maven中进行自定义打包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36077040/

相关文章:

maven - 生成工具(ant,maven和gradle)中的显着项目?

java - 从目录创建依赖项

ssh - 用于排除目录和文件的 Zip 命令

java - 检查给定路径上是否存在任何 Zip 文件

java - 将 Zip 内容读入字符串时出现 "ZipException - unexpected end of file when reading short buff"

java - 如何修复此运行时错误 : java. lang.IndexOutOfBoundsException

java - 如何使用扫描仪 Java 检查一行是否为空,如果是,则跳过它

java - 存储在磁盘上的图像 - 按名称搜索

java - 将字符串转换为多维 int 数组

java - Gwt + Maven + Idea,项目编译器输出设置