使用Maven创建自包含的源代码版本

kaz*_*aki 5 java migration maven-2 release self-contained

到目前为止,我们在公司使用了Ant.每当我们想要将应用程序发送到客户端时,我们就会运行一个特殊的Ant脚本,它将所有源代码和所有jar库以及Ant本身以及一个简单的批处理文件打包在一起.

然后客户端可以将文件放在完全没有网络访问权限的计算机上(甚至不是Ant)并运行批处理文件.只要计算机具有有效的JDK,批处理脚本就会使用jar编译所有代码,并创建一个最终由客户端部署在应用程序服务器上的WAR/EAR.

最近我们迁移到了Maven 2.但我还没有办法做同样的事情.我已经看过Maven程序集插件,但这只是创建源代码分发或二进制代码.我们的场景实际上是一个混合,因为它包含我们的源代码,但我们使用的库的二进制jar(例如Spring,Hibernate)

那么是否可以使用Maven创建一个独立的汇编/发布/包,可以在一台完全没有网络访问权限的计算机上运行?这意味着所有库都应该包含在内部.

如果Maven本身也包含在内部,则额外奖励,但这不是严格的要求.最终的包应该只需一个命令即可轻松编译(系统管理员可以轻松执行).

我正在考虑为此编写自己的Maven插件,但我怀疑有人已经遇到过这个问题.

sal*_*sal 1

您可以尝试这种方法:

  • 使用 mvn ant:ant 从 Maven 项目创建 ant 构建脚本
  • 确保 ant 是项目依赖项
  • 使用程序集构建ant
    系统

或计划b:

  • 使用 mvn ant:ant 从 Maven 项目创建 ant 构建脚本
  • 确保 ant 是项目依赖项
  • 编写一个“引导类”来调用 Ant 并运行构建
  • 使用appassembler构建脚本化的构建和安装环境

在 b 计划中,您需要编写脚本来从打包的源 jar 中的某个位置设置源树,然后使用 appassembler 构建 bat 或 sh 脚本来调用引导程序并通过 ant 进行构建。您的引导程序可以在构建之前或之后执行您需要执行的任何操作。

希望这可以帮助。