17. 构建

17.1. 基本编译和测试

要构建源代码,您需要安装 JDK 1.8。spring-doc.cadn.net.cn

Spring Cloud 大多使用 Maven 进行构建相关操作,您可以通过克隆您感兴趣的项目并输入以下命令,快速上手。spring-doc.cadn.net.cn

$ ./mvnw install
您也可以自行安装 Maven(>=3.3.3),并在以下示例中用 mvn 替代 ./mvnw。如果您这样做,且本地 Maven 配置中未包含 Spring 预发布构件的仓库声明,则可能还需要添加 -P spring
请注意,您可能需要通过设置一个 MAVEN_OPTS 环境变量来增加 Maven 可用的内存,其值可类似为 -Xmx1024m。我们已在 build 配置中尽量涵盖此情况;如果您发现必须进行此类设置才能使构建成功,请提交工单,以便将相关配置添加到源代码控制中。

查找构建项目的提示,请查看.travis.yml,如果有的话。应该有一个“脚本”和可能的“安装”命令。另外,查看“服务”部分,看看是否需要在本地运行某些服务(例如 mongo 或 rabbit)。忽略可以在“before_install”中找到的与 git 相关的部分,因为它们与设置 git 凭证相关,而您已经拥有这些凭证了。spring-doc.cadn.net.cn

由于需要middleware的project中你必须包含 docker-compose.yml,所以考虑使用 Docker Compose杭运行middleware server 在Docker container中,参考 scripts demo 存储库中readme.md可以查看about mongo,rabbit 和redis的使用方法。spring-doc.cadn.net.cn

如果其他方法都失败了,请使用 .travis.yml(通常是 ./mvnw install)中的命令进行构建。

17.2. 文档

spring-cloud-build 模块包含一个 "docs" 配置文件,若启用该配置文件,它将尝试从 src/main/asciidoc 构建 AsciiDoc 源文件。在此过程中,它会查找一个 README.adoc,并加载其中的所有包含内容,但仅复制而不进行解析或渲染,最终将其复制到 ${main.basedir}(默认值为 $/tmp/releaser-1632340415495-0/spring-cloud-kubernetes/docs,即项目的根目录)。如果 README 文件有任何更改,构建完成后,该修改后的文件将出现在正确的位置。只需提交并推送此更改即可。spring-doc.cadn.net.cn

17.3. Working with the code

如果您没有特定的 IDE 偏好,我们建议您在编写代码时使用 Spring Tools SuiteEclipse。我们使用 m2eclipse Eclipse 插件来支持 Maven。其他 IDE 和工具只要使用 Maven 3.3.3 或更高版本,也应该可以正常工作。spring-doc.cadn.net.cn

17.3.1.激活Spring Maven配置文件

Spring Cloud 项目需要激活 'spring' Maven 配置文件,以解析 Spring 的里程碑版本和快照仓库。请使用您偏好的 IDE 将此配置文件设置为激活状态,否则可能会遇到构建错误。spring-doc.cadn.net.cn

17.3.2. 导入到Eclipse中使用m2eclipse

我们推荐在使用 Eclipse 时安装 m2eclipse Eclipse 插件。如果您尚未安装 m2eclipse,它可从“Eclipse 市场”中获取。spring-doc.cadn.net.cn

旧版本的 m2e 不支持 Maven 3.3,因此在将项目导入 Eclipse 后,您还需告知 m2eclipse 为项目使用正确的配置文件。如果您在项目中看到许多与 POM 相关的错误,请检查您是否已安装最新版本。如果无法升级 m2e,请将 "spring" 配置文件添加到您的 settings.xml 中。或者,您可以将父 POM 的 "spring" 配置文件中的仓库设置复制到您的 settings.xml 中。

17.3.3. 导入到 eclipse 中,没有 m2eclipse

如果您不希望使用 m2eclipse,可以使用以下命令生成 Eclipse 项目元数据:spring-doc.cadn.net.cn

$ ./mvnw eclipse:eclipse

生成的 Eclipse 项目可以通过选择 import existing projectsfile 菜单中导入。spring-doc.cadn.net.cn