當(dāng)使用toolkit-maven-plugin插件部署應(yīng)用時(shí),您需提供部署應(yīng)用的阿里云賬號(hào)密鑰對(duì)。目前此插件支持多種配置方式,當(dāng)存在重復(fù)配置的情況時(shí),優(yōu)先級(jí)高的配置方式會(huì)覆蓋優(yōu)先級(jí)低的配置方式。

優(yōu)先級(jí)從高到低的配置方式如下:

  1. 命令行指定AccessKey ID和AccessKey Secret參數(shù):您可以通過(guò)如下任一方式來(lái)指定AccessKey ID和AccessKey Secret。例如:
    • 在使用Maven命令打包時(shí),通過(guò)-Daccess_key_id=xx -Daccess_key_secret=xx來(lái)指定。
    • 在pom中配置此插件時(shí),配置AccessKey ID或AccessKey Secret參數(shù)如下所示:
      <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. 命令行指定賬號(hào)文件(推薦):在使用Maven命令打包時(shí),通過(guò)-Daccess_key_file={賬號(hào)文件路徑來(lái)指定YAML格式的賬號(hào)文件。例如:
    access_key_id: abc
    access_key_secret: 1234567890                    
  3. 使用默認(rèn)的阿里云賬號(hào)文件:如果沒(méi)有通過(guò)以上兩種方式指定賬號(hào),那么此插件會(huì)使用您曾經(jīng)配置過(guò)的阿里云賬號(hào)進(jìn)行應(yīng)用部署。
    • aliyuncli:如果您使用過(guò)最新的aliyuncli工具并且配置過(guò)阿里云賬號(hào),那么阿里云會(huì)在您當(dāng)前Home目錄下生成一個(gè).aliyuncli目錄,并在.aliyuncli目錄下創(chuàng)建credentials文件來(lái)保存您的賬號(hào)信息。以macOS系統(tǒng)為例,假如系統(tǒng)用戶為jack,那么會(huì)在/Users/jack/.aliyuncli/credentials文件中保存如下信息:
      [default]
      aliyun_access_key_secret = 1234567890
      aliyun_access_key_id = abc                    

      此插件會(huì)使用此賬號(hào)文件作為部署應(yīng)用的賬號(hào)。

    • aliyun:如果您使用過(guò)舊版本的aliyun工具并且配置過(guò)阿里云賬號(hào),那么aliyun工具會(huì)在您當(dāng)前Home目錄下生成一個(gè).aliyun目錄,并且在.aliyun目錄下創(chuàng)建一個(gè)config.json文件來(lái)保存您的賬號(hào)信息。以macOS系統(tǒng)為例,假如系統(tǒng)用戶為jack,那么會(huì)在/Users/jack/.aliyun/config.json文件中保存賬號(hào)信息,例如:
      {
          "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": ""
      }                    
    • 系統(tǒng)環(huán)境變量:最后,此插件會(huì)嘗試通過(guò)系統(tǒng)環(huán)境變量來(lái)獲取access_key_id和access_key_secret的值。即通過(guò)Java代碼的System.getenv("access_key_id")System.getenv("access_key_secret")來(lái)獲取相應(yīng)的值。