Eclipse IDE:如何从 AWS CLI 执行设置环境变量? (用于设置 AWS Code Artifact 令牌)

问题描述 投票:0回答:1

我正在尝试使用我们的 AWS Code Artifact 作为 Maven 存储库。该存储库设置为通过令牌进行身份验证,该令牌每 24 小时过期一次。使用

aws codeartifact get-authorization-token ...
通过其 CLI 从 AWS 检索令牌。因此,在 Eclipse 中运行 Maven 构建之前,我需要一种方法来将环境变量设置为该令牌的值。最好不要重新启动 IDE。

我找到了一种让它在裸终端中工作的方法:我只是使用带有脚本的 mavenrc 文件来设置环境变量(如果令牌过期)。然后我在自定义 settings.xml 中引用了该变量。这样每次我运行

mvn
- 它都会自动登录并设置变量。

尽管如此,这在带有 M2E 的 Eclipse 中不起作用,即使它设置为使用相同的 Maven 实例。因此,我尝试使用环境变量首选项页面 Eclipse 插件,以便将变量设置为硬编码值,但即使这样似乎也不起作用。如果这是一个常量,我会在应用程序中使用 Info.plist 文件,但它是一个动态变量......

我希望你们中的一些人知道解决方法。预先感谢您!

java amazon-web-services eclipse maven
1个回答
0
投票

我找到了一种涉及重新启动 Eclipse 的方法,但这至少是...... 这个答案帮助了我。我基本上在

chmod +x
文件夹中创建了一个名为
eclipsebash
的可执行 (
Eclipse.app/Contents/MacOS
) 文本文件,其中包含以下内容:

#!/bin/bash

cd "$(dirname "$0")" || exit 1
cwd="$(pwd)"

export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain <my-domain> --domain-owner <my-aws-account> --region <my-aws-region> --query authorizationToken --output text`
export MVN_REPO_URL="https://my-codeartifact.region.amazonaws.com/maven"

exec "${cwd}/eclipse"

然后我可以使用以下命令从终端运行它:

open Eclipse.app/Contents/MacOS/eclipsebash

尽管,当我尝试将其更新为长期能够通过 Eclipse.app 快捷方式运行时,它不起作用。我所做的是更新

Eclipse.app/Contents/Info.plist
文件,将
CFBundleExecutable
键设置为
eclipsebash
而不是
eclipse
。当我运行它时,我看到
MVN_REPO_URL
变量已设置,但 CODEARTIFACT_AUTH_TOKEN 为空。所以看起来它不会执行
aws codeartifact
的子命令...我希望你们中的一些人知道如何解决它。否则我必须从终端运行它:(

注 1: 为了检查是否设置了环境变量,我使用了 Eclipse -> 关于 -> 安装详细信息 -> 配置选项卡 - 有环境变量列表。

注 2: 为了使其工作,我必须偶尔手动运行

aws sso login
(取决于您的设置),以便
aws codeartifact
工作。我尝试通过将条件
aws sso login
添加到相同的
eclipsebash
来解决此问题,但同样 - 仅当我从终端运行它时它才有效,如果我通过应用程序快捷方式运行它则不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.