当使用toolkit-maven-plugin插件部署应用时,您需提供部署应用的阿里云账号密钥对。目前此插件支持多种配置方式,当存在重复配置的情况时,优先级高的配置方式会覆盖优先级低的配置方式。

优先级从高到低的配置方式如下:

  1. 命令行指定AccessKey ID和AccessKey Secret参数:您可以通过如下任一方式来指定AccessKey ID和AccessKey Secret。
    • 在使用Maven命令打包时,通过-Daccess_key_id=xx -Daccess_key_secret=xx来指定。
    • 在pom中配置此插件时,配置AccessKey ID或AccessKey Secret参数如下所示:
      <plugin>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>toolkit-maven-plugin</artifactId>
         <version>1.0.3</version>
      <configuration>
        <accessKeyId>abc</accessKeyId>
        <accessKeySecret>1234567890</accessKeySecret>
      </configuration>
      </plugin>                            
  2. 命令行指定账号文件(推荐):在使用Maven命令打包时,通过-Daccess_key_file={账号文件路径来指定YAML格式的账号文件。例如:
    access_key_id: abc
    access_key_secret: 1234567890                    
  3. 使用默认的阿里云账号文件:如果没有通过以上两种方式指定账号,那么此插件会使用您曾经配置过的阿里云账号进行应用部署。
    • aliyuncli:如果您使用过最新的aliyuncli工具并且配置过阿里云账号,那么阿里云会在您当前Home目录下生成一个.aliyuncli目录,并在.aliyuncli目录下创建credentials文件来保存您的账号信息。以macOS系统为例,假如系统用户为jack,那么会在/Users/jack/.aliyuncli/credentials文件中保存如下信息:
      [default]
      aliyun_access_key_secret = 1234567890
      aliyun_access_key_id = abc                    

      此插件会使用此账号文件作为部署应用的账号。

    • aliyun:如果您使用过旧版本的aliyun工具并且配置过阿里云账号,那么aliyun工具会在您当前Home目录下生成一个.aliyun目录,并且在.aliyun目录下创建一个config.json文件来保存您的账号信息。以macOS系统为例,假如系统用户为jack,那么会在/Users/jack/.aliyun/config.json文件中保存账号信息,例如:
      {
          "current": "",
          "profiles": [{
              "name": "default",
              "mode": "AK",
              "access_key_id": "",
              "access_key_secret": "",
              "sts_token": "",
              "ram_role_name": "",
              "ram_role_arn": "",
              "ram_session_name": "",
              "private_key": "",
              "key_pair_name": "",
              "expired_seconds": 0,
              "verified": "",
              "region_id": "",
              "output_format": "json",
              "language": "en",
              "site": "",
              "retry_timeout": 0,
              "retry_count": 0
          }, {
              "name": "",
              "mode": "AK",
              "access_key_id": "abc",
              "access_key_secret": "xxx",
              "sts_token": "",
              "ram_role_name": "",
              "ram_role_arn": "",
              "ram_session_name": "",
              "private_key": "",
              "key_pair_name": "",
              "expired_seconds": 0,
              "verified": "",
              "region_id": "cn-hangzhou",
              "output_format": "json",
              "language": "en",
              "site": "",
              "retry_timeout": 0,
              "retry_count": 0
          }],
          "meta_path": ""
      }                    
    • 系统环境变量:最后,此插件会尝试通过系统环境变量来获取access_key_id和access_key_secret的值。即通过Java代码的System.getenv("access_key_id")System.getenv("access_key_secret")来获取相应的值。