CLion教程-在远程目标上运行(Gradle、Rust)
对于某些运行/调试配置,您可以直接从CLion在另一个环境中运行您的代码,例如云或Docker容器。
此功能使您可以立即针对应用程序预期使用的实际环境测试更改。这可以确保在移动到生产环境时不会出现不兼容性,特别是在处理严重依赖于环境的代码时尤为重要。
直接在这种环境中运行应用程序还可以省去每次更改时都需要部署和运行应用程序的额外操作。
用于运行应用程序的环境称为目标。为了让CLion在目标上运行代码,目标必须定义一个语言运行时,该运行时表示目标上可以被运行/调试配置用来运行代码的东西。
要在目标上运行代码,您只需要在您通常用于本地运行的运行/调试配置中定义目标执行环境。完成后,在目标上启动应用程序与在本地启动没有任何区别。
支持的运行/调试配置类型
以下运行/调试配置可以在远程目标上运行:
- Gradle
- Rust
调试和动态分析功能对远程目标不可用。
创建运行/调试配置
- 转到“运行” | “编辑配置”。或者,按AltShiftF10,然后按00。
- 在运行/调试配置对话框中,单击工具栏上的添加按钮 或按AltInsert。列表显示运行/调试配置模板。
- 选择支持的运行/调试配置类型之一。
如果您已经定义了目标,请从“在运行目标上运行”菜单中选择它。否则,单击“管理目标…”以添加新目标。有关配置特定目标类型的更多信息,请参阅以下步骤:
- SSH
- Docker
- WSL
您还可以在运行/调试配置模板中配置运行目标,这样,下次创建该类型的新配置时,其参数已经具有所需的值。
运行
在远程目标上运行应用程序的步骤与在本地运行相同:
- 在主工具栏上选择运行/调试配置。
- 单击 或按ShiftF10。
CLion将构建生成物,然后将其复制到目标。之后,它使用指定的运行时在目标上运行应用程序。
目标类型
目标描述了应用程序将在其中运行的环境的配置。
当您创建一个远程目标时,CLion会自动检测远程环境中可用的运行时。如果需要,您可以手动配置附加的运行时。
SSH
需要FTP/SFTP/WebDAV连接插件。
选择是否要使用现有的SSH配置或创建一个新的:
存在的
- 从SSH列表中选择一个现有的SSH配置,然后单击“下一步”。
新的
- 输入SSH服务器的IP、监听SSH连接的端口以及在服务器机器上运行应用程序的用户的名称。单击“下一步”。
等待连接建立。如果存在具有凭证的代理,将不需要额外的配置。否则,选择身份验证方法并提供所需的值:
- 密码:输入密码。
- 密钥对(OpenSSH或PuTTY):要应用此身份验证方法,必须在客户端计算机上拥有私钥,并在远程服务器上拥有公钥。CLion支持使用OpenSSH实用程序生成的私钥。
在相应字段中指定存储您的私钥的文件的路径,并在相应字段中输入密码(如果有)。要让CLion记住密码,请选择“保存密码”复选框。
单击“下一步”。
- 等待SSH服务器的审视完成。在此步骤期间,CLion尝试识别环境中可用的语言运行时。单击“下一步”。
配置以下属性:
- 使用rsync:切换此选项以使用rsync进行文件传输。这是推荐的,因为它通常会加速文件复制过程。
- 目标上的项目路径:用于存储项目文件的服务器上的路径。
- 添加语言运行时。对于每个运行时,指定其版本和在服务器上的路径。当您将此环境选择为目标时,配置的设置将出现在运行/调试配置的构建和运行部分中。
可用的运行时如下:
- Java:适用于在服务器上运行应用程序的JDK。选择此运行时类型后,将在本地构建应用程序,然后将其复制到目标位置
- Maven:服务器上安装的Maven。选择此运行时类型后,将源代码和库复制到服务器,然后在服务器上构建和运行。
Docker
需要Docker插件。
- 根据启用Docker支持中的说明选择或配置Docker服务器。
- 对于Windows和macOS - 确保Docker可以访问工作流程中使用的所有文件夹,例如项目文件夹,.maven等。
选择是否要在本地构建映像或从Docker注册表中拉取映像。
构建
- Dockerfile:用于构建映像的Dockerfile。
- 上下文文件夹:在构建过程中Docker守护程序将可以访问其内容的文件夹,以后将在映像文件系统中使用。
- 每次运行代码之前自动重新构建映像:启用此选项时,每次运行代码时都会重新构建映像。否则,CLion将使用已经存在的映像(如果有的话)。
此外,您可以指定以下内容:
- 映像标签:指定构建的映像的名称和标签。类似于使用
docker build
的-t
选项。 - 构建选项:为
docker build
命令指定任意选项。 - 构建参数:覆盖默认的构建时间变量。类似于使用
docker build
的--build-arg
选项。 - 运行选项:为
docker run
命令指定任意选项。
并非所有
docker run
选项都受支持。- 映像标签:指定构建的映像的名称和标签。类似于使用
拉取
- 映像标签:指定要从注册表中拉取的映像的全名。如果仅指定了存储库,将使用默认的
:latest
标签。 - 运行选项:为
docker run
命令指定任意选项。
并非所有
docker run
选项都受支持。- 映像标签:指定要从注册表中拉取的映像的全名。如果仅指定了存储库,将使用默认的
- 等待容器审视完成。在此步骤期间,CLion尝试识别环境中可用的语言运行时。单击“下一步”。
如果需要,配置语言运行时。在以下情况下可能需要这样做:
- 您有一个复杂的映像(例如,带有多个JDK)。主要运行时将自动识别。但是,任何附加的运行时都需要手动配置。
- 审视失败。在大多数情况下,CLion将根据步骤1中的上下文正确识别主要运行时。如果没有发生这种情况,手动修改主要运行时。
对于每个运行时,请指定其版本和容器中的路径。当您将此环境选择为目标时,配置的运行时将出现在运行/调试配置的构建和运行部分中。
可用的运行时如下:
- Java:如果容器中有Java运行时,则将在本地构建应用程序,然后将其复制到目标位置
- Maven:容器中的Maven。选择此运行时类型后,将源代码和库复制到容器中,然后在容器中构建和运行。
Docker Compose
您可以使用单个Docker Compose服务作为运行目标。
需要Docker插件。
- 根据启用Docker支持中的说明选择或配置Docker服务器。
- 对于Windows和macOS - 确保Docker可以访问工作流程中使用的所有文件夹,例如项目文件夹,.maven等。
- 指定Docker Compose配置文件,选择所需的服务,并提供任何附加的环境变量。单击“下一步”。
- 等待Docker Compose服务审视完成。在此步骤期间,CLion尝试识别环境中可用的语言运行时。单击“下一步”。
如有必要,请配置语言运行时。在以下情况下可能需要这样做:
- 如果您有一个复杂的服务,其中包含多个运行时,CLion将自动识别主要运行时。但是,任何附加的运行时都需要手动配置。
- 如果审视失败。在大多数情况下,CLion将根据步骤1中的上下文正确识别主要运行时。如果没有发生这种情况,手动修改主要运行时。
对于每个运行时,请指定其版本和容器中的路径。当您将此环境选择为目标时,配置的运行时将出现在运行/调试配置的构建和运行部分中。
可用的运行时如下:
- Java:如果容器中有Java运行时,则将在本地构建应用程序,然后将其复制到目标位置
- Maven和Gradle:如果容器中有Maven或Gradle,则将源代码和库复制到容器中,然后在容器中构建和运行。