我正在使用 nexus 来托管 maven 和 docker 工件。对于 docker 生产工件,我想打开“禁用重新部署”以确保映像一旦可能投入生产就永远不会在 nexus 服务器上更改。
但是,启用“禁用重新部署”似乎无法重新发布“最新”标签以指向最新版本。
尝试推送时,我在客户端上遇到了一些模糊的错误,例如 blob upload invalid: blob upload invalid.
是否可以禁用重新部署到具体版本标签,同时允许使用“最新”等标签
我正在实现一个 API,它使用Field Mask类型的update_mask来指定应在资源上更新的字段。
该 API 类似于:
rpc UpdateBook(UpdateBookRequest) returns (Book)
message UpdateBookRequest {
Book book=1;
google.protobuf.FieldMask update_mask = 2;
}
Run Code Online (Sandbox Code Playgroud)
目前代码看起来像这样:
override suspend fun updateBook(request: UpdateBookRequest): Book {
if (!FieldMaskUtil.isValid(Book::class.java, request.updateMask)) {
throwStatusRuntimeException {
code = Code.INVALID_ARGUMENT_VALUE
message = "Invalid field mask"
}
}
request.book.let { book ->
request.updateMask.pathsList.let { updateMask ->
var displayName: BookDisplayNameValue? = null
var description: BookDescriptionValue? = null
if (updateMask.contains(BookFields.DISPLAY_NAME_FIELD)) {
displayName = BookDisplayNameValue(book.displayName)
}
if (updateMask.contains(BookFields.DESCRIPTION_FIELD)) {
description = BookDescriptionValue(book.description.ifBlank { …Run Code Online (Sandbox Code Playgroud) 我遇到借用检查器无法“释放”可变借用的问题。
我有:
let mut data = (1..=100).collect::<Vec<_>>();
let mut c = Canvas::new(10, 10, &mut data);
c.iter_rows_mut(4..7);
c.iter_rows(4..7).collect::<Vec<_>>();
Run Code Online (Sandbox Code Playgroud)
它在抱怨:
error[E0502]: cannot borrow `c` as immutable because it is also borrowed as mutable
--> src/lib.rs:59:9
|
57 | c.iter_rows_mut(4..7);
| - mutable borrow occurs here
58 |
59 | c.iter_rows(4..7).collect::<Vec<_>>();
| ^
| |
| immutable borrow occurs here
| mutable borrow later used here
error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud)
如果我传递与可变调用相关的引用,我可以理解这个问题,但情况似乎并非如此。
Rust Playground 包含完整代码:https://play.rust-lang.org/? version=stable&mode=debug&edition=2018&gist=de4143ddf57cc8a97e7a884bbe13dfa4