运行目标
最后修改时间:2023 年 9 月 8 日您可以直接从 IntelliJ IDEA 在其他环境(例如云或 Docker 容器)中运行代码。
对于某些运行/调试配置,您可以直接从 IntelliJ IDEA在其他环境(例如云或Docker容器)中运行代码。
此功能允许您立即根据应用程序的真实环境测试更改。这确保了在转移到生产时不会出现不兼容性,这在处理严重依赖于环境的代码时尤其重要。
直接在此类环境中运行应用程序还可以让您免去每次发生更改时部署和运行应用程序通常所需的额外操作。
用于运行应用程序的环境称为target。为了让 IntelliJ IDEA 在目标上运行代码,目标必须定义一个语言运行时,它代表目标上可以由运行/调试配置用来运行代码的东西。例如,应用程序和Maven运行/调试配置将分别需要 JDK 和 Maven。
为了在目标上运行代码,您所需要做的就是在通常用于本地运行的运行/调试配置中定义目标执行环境。完成此操作后,在目标上启动应用程序与在本地启动应用程序没有什么不同。
支持的运行/调试配置类型
以下运行/调试配置可以在远程目标上运行:
创建运行/调试配置
转到“运行”| 编辑配置。或者,按,然后按。AltShiftF1000
选择支持的运行/调试配置类型之一。
如果您已经定义了目标,请从“运行于”菜单中选择它。否则,单击管理目标...添加新目标。有关配置特定目标类型的更多信息,请参阅以下过程:
您还可以在运行/调试配置模板中配置运行目标,因此下次创建该类型的新配置时,其参数已具有所需的值。有关详细信息,请参阅配置模板的默认值。
跑步
在远程目标上运行应用程序的过程与在本地运行应用程序的过程相同:
在主工具栏上选择运行/调试配置。
单击或按。ShiftF10
IntelliJ IDEA 构建工件,然后将它们复制到目标。之后,它使用指定的运行时在目标上运行应用程序。
调试、分析和分析覆盖率
您可以以与在本地运行时完全相同的方式调试、分析和测量在目标上运行的 Java 应用程序的覆盖率。
笔记
当您使用Async profiler时,Java Profiler 页面上的设置将应用于远程环境。如果目标使用不同的平台,则必须相应地配置设置。
目标类型
目标描述了应用程序运行的环境的配置。
当您创建远程目标时,IntelliJ IDEA 会自动检测远程环境中可用的运行时。如果需要,您可以手动配置其他运行时。
笔记
需要 FTP/SFTP/WebDAV 连接插件。
选择是要使用现有 SSH 配置还是创建新配置:
现存的新的从SSH列表中选择现有的 SSH 配置,然后单击“下一步”。有关配置 SSH 的更多信息,请参阅创建 SSH 配置。
Enter the IP of the SSH server, the port listening for SSH connections, and the name of the user on the server machine, on whose behalf you are going to run your application. Click Next.
Wait for the connection to be established. If there is an agent that has the credentials, no additional configuration will be required. Otherwise, select the authentication method and provide the required values:
Password: enter the password.
Key pair (OpenSSH or PuTTY): To apply this authentication method, you must have a private key on the client machine and a public key on the remote server. IntelliJ IDEA supports private keys that are generated with the OpenSSH utility.
Specify the path to the file where your private key is stored and type the passphrase (if any) in the corresponding fields. To have IntelliJ IDEA remember the passphrase, select the Save passphrase checkbox.
Click Next.
tip
For more information about working with SSH keys, refer to the Generating a new SSH key and adding it to the ssh-agent tutorial.
等待 SSH 服务器自检完成。在此步骤中,IntelliJ IDEA 尝试识别环境中可用的语言运行时。点击下一步。
配置以下属性:
使用 rsync:切换此选项以使用rsync进行文件传输。建议这样做,因为它通常会加快文件复制速度。
目标上的项目路径:服务器上用于存储项目文件的路径。
添加语言运行时。对于每个运行时,指定其版本和服务器上的路径。当您选择此环境作为目标时,配置的设置将出现在运行/调试配置的“构建和运行”部分中。
以下运行时可用:
Java:服务器上适合运行您的应用程序的 JDK。选择此运行时类型时,应用程序将在本地构建,然后复制到目标
Maven:在服务器上安装Maven。选择此运行时类型后,源和库将被复制到服务器,然后在那里构建和运行。
笔记
需要 Docker 插件。有关更多信息,请参阅Docker 运行目标。
选择或配置Docker 服务器,如启用 Docker 支持中所述。
对于 Windows 和 macOS – 确保 Docker 有权访问工作流程中使用的所有文件夹,例如项目文件夹、.maven等。更多信息请参考Docker 官方文档。
选择是要在本地构建映像还是从 Docker 注册表中提取映像。
建造拉Dockerfile:将用于构建映像的 Dockerfile。
上下文文件夹:Docker 守护进程在构建期间可以访问其内容的文件夹,以便稍后在映像文件系统中使用。
每次运行代码前自动重建图像:设置此选项后,每次运行代码时都会重建图像。否则,IntelliJ IDEA 将使用已经存在的图像(如果有)。
此外,您还可以指定以下内容:
图像标签:指定构建图像的名称和标签。
-t
与使用选项类似docker build
。构建选项:为命令指定任意选项
docker build
。构建参数:覆盖默认的构建时变量。
--build-arg
与使用选项类似docker build
。运行选项:为命令指定任意选项
docker run
。笔记
并非所有
docker run
选项都受支持。如果您想请求对某些选项的支持,请在IDEA-181088中发表评论。
Image tag: specify the full coordinates for the image to be pulled from a registry. The default
:latest
tag will be used if only repository is specified.Run options: specify arbitrary options for the
docker run
command.note
Not all
docker run
options are supported. If you would like to request support for some option, leave a comment in IDEA-181088.
等待容器自省完成。在此步骤中,IntelliJ IDEA 尝试识别环境中可用的语言运行时。点击下一步。
如果需要,配置语言运行时。您可能在以下情况下需要它:
您有一个复杂的映像(例如具有多个 JDK)。将自动识别主要运行时。但是,任何额外的运行时都需要手动配置。
内省失败。在大多数情况下,IntelliJ IDEA 将根据步骤 1 中的上下文正确识别主运行时。如果没有发生这种情况,请手动修改主运行时。
对于每个运行时,指定其版本和在容器中的路径。当您选择此环境作为目标时,配置的运行时将出现在运行/调试配置的“构建和运行”部分中。
以下运行时可用:
Java:适合运行您的应用程序的 JDK。选择此运行时类型时,应用程序将在本地构建,然后复制到目标
Maven:容器中的 Maven。选择此运行时类型后,源和库将被复制到容器中,然后在容器中构建并运行。
您可以使用单个 Docker Compose 服务作为运行目标。
笔记
需要 Docker 插件。
选择或配置Docker 服务器,如启用 Docker 支持中所述。
对于 Windows 和 macOS – 确保 Docker 有权访问工作流程中使用的所有文件夹,例如项目文件夹、.maven等。更多信息请参考Docker 官方文档。
指定 Docker Compose 配置文件,选择必要的服务,并提供任何其他环境变量。点击下一步。
等待 Docker Compose 服务自省完成。在此步骤中,IntelliJ IDEA 尝试识别环境中可用的语言运行时。点击下一步。
如有必要,配置语言运行时。在以下情况下这可能是必要的:
如果您有一项具有多个运行时的复杂服务,IntelliJ IDEA 将自动识别主要服务。但是,任何额外的运行时都需要手动配置。
如果自省失败,请手动修改主运行时。
对于每个运行时,指定其版本和在容器中的路径。当您选择此环境作为目标时,配置的运行时将出现在运行/调试配置的“构建和运行”部分中。
以下运行时可用:
Java:如果容器中有可用的 Java 运行时,则应用程序将在本地构建,然后复制到目标。
Maven和Gradle:如果容器中有 Maven 或 Gradle,则源和库将复制到容器中,然后在容器中构建并运行。
感谢您的反馈意见!