如何设置一个好的java构建环境?

Posted

技术标签:

【中文标题】如何设置一个好的java构建环境?【英文标题】:How to setup a good java build environment? 【发布时间】:2011-04-23 01:54:15 【问题描述】:

Java/Eclipse。开发工作正常。我们有用于构建服务器的 Windows 或 FreeBSD。

虽然我想做以下部署(以非常自动化的方式):

1:从源代码控制中下拉所有内容(强制)

2:使用可配置的 javac 和参数构建所有源代码(和所有依赖项目)(我们想看看不同的编译器是否会影响性能)

3:运行proguard

4:将所有资源(.class、“res/”目录、外部.jars等)打包成一个jar。

5:创建一个 .jnlp 网络启动

6:创建本机 Windows 安装程序(有什么建议吗?)

7) 对于我们的 android 应用程序 4/5 应该构建/登录到可部署的 android 包中

我们已经尝试过 ant,但看起来非常笨重且容易出错。也许最好的方法就是编写所有脚本?似乎应该已经有一个很好的方法来做到这一点。

【问题讨论】:

【参考方案1】:

我们将 maven 用于构建过程,并将 Hudson 作为持续集成服务器,为我们进行构建。为了制作 Windows Installer,我们使用 NSIS,它有一个 Maven 插件,甚至可以在 linux 机器上构建安装程序(您必须为构建器 iirc 重新编译一些库)。

至于 Android,从来没有这样做过 - 所以不确定 Maven 是否有适当的帮助。但如果需要,您可以随时将 Ant 嵌入其中(使用 Maven 的 ant 插件)。

简而言之,就像所有这些系统一样,有一些初始设置,但即使是规模不大的项目也通常值得这样做,因为它很快就会得到回报。

【讨论】:

【参考方案2】:

我们对FinalBuilder 进行了短暂的评估。它是集成各种构建发布任务的非常强大的工具。

然后我们切换到 Hudson,它用完了 ant 脚本和 schell 脚本。拥有 hudson 对运行其他任务通常很有用——比如运行代码检查工具、创建 VM 实例、部署新创建的安装程序、启动测试等。

InstallAnywhere 允许您为 Java 应用程序创建本机安装程序。不过不是免费的。

【讨论】:

【参考方案3】:

考虑TeamCity。它不是免费的,但它是持续集成的好工具。

【讨论】:

【参考方案4】:

如果您熟悉 Groovy,您可能会考虑 Gant...Ant 的所有强大功能与 Groovy 的编码灵活性相结合。

【讨论】:

【参考方案5】:

我建议您重新考虑 Ant。如果某些任务很尴尬,您可以使用 exec 任务来启动 shell 或用 Java 编写自己的 ant 任务。这仍然允许您使用 Ant 来协调整个构建。您可以通过定义宏来减少剪切和粘贴爆炸,从而使 Ant 更不容易出错。

Maven 有很多不错的功能,但在项目开始时设置起来更容易。将现有项目转换为使用 Maven 需要做很多工作。 Ivy配合Ant可以得到Maven的依赖管理。

【讨论】:

以上是关于如何设置一个好的java构建环境?的主要内容,如果未能解决你的问题,请参考以下文章

需要建议与Jenkins master-Slave设置一起使用吗?

JAVA PATH的设置问题

在执行 maven 之前设置环境变量(在 jenkins 构建中)

构建 React 项目后如何设置节点环境变量(运行时)?

如何从Gradle构建中设置环境变量?

为暂存环境构建时如何忽略 vue.config.js 中的 devServer 设置?