【发布时间】:2010-11-09 11:55:02
【问题描述】:
到目前为止,我们在我的公司使用 Ant。每当我们想将应用程序发送到客户端时,我们都会运行一个特殊的 Ant 脚本,该脚本将我们所有的源代码与所有 jar 库和 Ant 本身以及一个简单的批处理文件打包在一起。
然后客户端可以将文件放在完全没有网络访问权限(甚至 Ant 也没有)的计算机上并运行批处理文件。只要计算机具有有效的 JDK,批处理脚本就会使用 jar 编译所有代码并创建最终由客户端部署在应用程序服务器上的 WAR/EAR。
最近我们迁移到了 Maven 2。但我还没有找到一种方法来做同样的事情。我见过 Maven 程序集插件,但这只是创建源代码分发或二进制分发。我们的场景实际上是一个混合体,因为它包含我们的源代码和我们使用的库的二进制 jar(例如 Spring、Hibernate)
那么是否可以使用 Maven 创建一个可以在完全没有网络访问权限的计算机上运行的自包含程序集/发布/包?这意味着所有的库都应该包含在里面。
如果 Maven 本身也包含在其中,则额外的好处,但这不是一个严格的要求。最终的包应该可以通过一个命令轻松编译(系统管理员很容易执行)。
我正在考虑为此编写自己的 Maven 插件,但我怀疑有人已经遇到过这个问题。
【问题讨论】:
标签: java maven-2 migration release self-contained