小编use*_*686的帖子

访问AWS CodePipeline中的AWS CodeBuild变量

我正在尝试使用AWS CodeBuild Id作为我的docker镜像的标记.此docker镜像是在CodeBuild的构建阶段构建的.我想在AWS Code Pipeline阶段获得这个Coudebuild Id,这是我的docker标记.如何在aws codepipeline中访问这些codebuild环境变量?

CodeBuild阶段:

CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
  Artifacts:
    Location: !Ref ArtifactBucket
    Type: "S3"
  Source:
    Location: !Sub ${ArtifactBucket}/source.zip
    Type: "S3"
    BuildSpec: |
      version: 0.1
      phases:
        pre_build:
          commands:
            - $(aws ecr get-login --region $AWS_DEFAULT_REGION)
            - sudo apt-get update
            - echo Pulling maven image...
            - docker pull maven:3.3-jdk-8
            - echo done with the pre build phase
        build:
          commands:
            - echo Build started on `date`
            - printf "%s" $REPOSITORY_URI
            - docker run -i --rm -w /opt/maven -v $PWD:/opt/maven -v …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-codepipeline aws-codebuild

7
推荐指数
1
解决办法
1793
查看次数

在java 8中不使用POJO进行分组

我有一个用例,我需要读取一个文件并获取序列的分组和与序列相关的值列表.文件中这些记录的格式类似于sequence-val,example

10-A
10-B
11-C
11-A
Run Code Online (Sandbox Code Playgroud)

我希望输出是一个map(Map<String,List<String>>),其中序列作为键,并将值列表与值相关联,如下所示

10,[A,B]
11,[C,A]
Run Code Online (Sandbox Code Playgroud)

有没有办法在不为这些记录创建POJO的情况下做到这一点?我一直在尝试探索Collectors.groupingBy我看到的基于创建POJO的大多数示例的用法.

我一直试图写这样的东西

Map<String, List<String>> seqCpcGroupMap = pendingCpcList.stream().map(rec ->{
  String[] cpcRec = rec.split("-");
  return new Tuple2<>(cpcRec[0],cpcRec[1])
}).collect(Collectors.groupingBy(x->x.))
Run Code Online (Sandbox Code Playgroud)

要么

Map<String, List<String>> seqCpcGroupMap = pendingCpcList.stream().map(rec ->{
  String[] cpcRec = rec.split("-");
  return Arrays.asList(cpcRec[0],cpcRec[1]);
}).collect(Collectors.groupingBy(x->(ArrayList<String>)x[0]));
Run Code Online (Sandbox Code Playgroud)

我无法提供功能groupingBy可能发生的任何密钥groupingBy,有没有办法做到这一点,还是我必须创建一个POJO使用groupingBy

java collections lambda java-8 java-stream

7
推荐指数
1
解决办法
107
查看次数

BLE扫描记录说明

我试图让UUIDMajorMinor IDs从在的形式收到的BLE广告byte[]。我在这里使用了建议的代码但是我无法理解解析器的输出。这是我为BLE设备之一获得的输出

Length: 2 Type : 1 Data : 6,   
Length: 26 Type : -1 Data : 76 0 2 21 -9 -126 109 -90 79 -94 78 -104 -128 36 -68 91 113 -32 -119 62 12 -121 -79 52 -77,  
Length: 8 Type : 9 Data : 75 111 110 116 97 107 116,  
Length: 2 Type : 10 Data : -12,  
Length: 10 Type : …
Run Code Online (Sandbox Code Playgroud)

android bluetooth bluetooth-lowenergy android-bluetooth

5
推荐指数
1
解决办法
8138
查看次数

在 java 8 中从没有 POJO 的对象列表或流中收集为 HashMap&lt;String,String&gt;

我有一个对象列表,我必须从中创建一个HashMap<String,String>ConcurrentHashMap<String,String>在对列表中的每个对象应用某些逻辑之后。这是在不使用 java 8 的情况下完美运行的代码。

 for (Model model : parser.getList()) {
       String name = model.getName();
       String val = parser.getValue(arr, name);
       map.putIfAbsent(name, val);
 }
Run Code Online (Sandbox Code Playgroud)

我能够将其翻译为

Map<String, String> map = new HashMap<>();
parser.getList().forEach(model -> map.putIfAbsent(model.getName(),parser.getValue(arr,model.getName())));
Run Code Online (Sandbox Code Playgroud)

但是,我想探索 的用法,Collectors.toMap看看我是否可以在这个用例中利用它。我试图做类似下面的事情,但这不是正确的用法,因为我无法使用 params调用方法parser.getValuetoMap()

 Map<String,String> valMap = parser.getFieldList().stream().collect(Collectors.toMap(Model::getName,parser.getValue(arr,Model::getName),(left,right)->right),HashMap::new); 
Run Code Online (Sandbox Code Playgroud)

Collectors.toMap()当我创建一个 POJO ValHolder 来保存如下值时,我能够使用它。

Map<String,String> tranMap = parser.getFieldList().stream().map(model -> {
        return new ValHolder(model.getName(),parser.Value(dataArray,model.getName()));
}).collect(Collectors.toMap(ValHolder::getName,ValHolder::getValue,(x,y)->y,HashMap::new));
Run Code Online (Sandbox Code Playgroud)

为保存值而创建的 POJO 如下

class ValHolder {

    String name;
    String value;

    public String getName() {
        return name;
    } …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

2
推荐指数
1
解决办法
163
查看次数