我正在尝试使用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) 我有一个用例,我需要读取一个文件并获取序列的分组和与序列相关的值列表.文件中这些记录的格式类似于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?
我试图让UUID,Major,Minor 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) 我有一个对象列表,我必须从中创建一个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)