gpt4 book ai didi

用于删除 nexus 3 上的工件的 groovy 脚本(不是 nexus 2)

转载 作者:行者123 更新时间:2023-12-05 08:55:32 25 4
gpt4 key购买 nike

我有 Nexus 3 服务器,我在上面保存了工件,并且它已被填充到最大值。我希望创建一个任务来每天删除旧工件,但始终保留至少 50 个工件。问题是应该执行它的默认任务不起作用。 configuration part 1

configuration part 2

所以我读到它可以通过我安排在任务中运行的 groovy 脚本来完成。

有人可以帮我吗?我在互联网上找不到任何有用的东西。

最佳答案

根据@daniel-schröter 的回答,您可以按照以下示例添加一个计划任务:

转到 System -> Tasks 并单击 Create Task。创建脚本任务:

enter image description here

将语言设置为 groovy 并复制此修改后的脚本以适应计划任务(您应该提供自己的修改,这只是一个示例):

import org.sonatype.nexus.repository.storage.Component
import org.sonatype.nexus.repository.storage.Query
import org.sonatype.nexus.repository.storage.StorageFacet

log.info("delete components for repository: my-repo")

def compInfo = { Component c -> "${c.group()}:${c.name()}:${c.version()}[${c.lastUpdated()}]}" }

def repo = repository.repositoryManager.get("my-repo")
StorageFacet storageFacet = repo.facet(StorageFacet)

def tx = storageFacet.txSupplier().get()
tx.begin()
Iterable<Component> components = tx.findComponents(Query.builder().where('last_updated < ').param('2190-01-01').build(), [repo])
tx.commit()
tx.close()

log.info("about to delete " + components.flatten(compInfo))
for(Component c : components) {
log.info("deleting " + compInfo(c))
tx2 = storageFacet.txSupplier().get()
tx2.begin()
tx2.deleteComponent(c)
tx2.commit()
tx2.close()
}

log.info("finished deleting " + components.flatten(compInfo))

关于用于删除 nexus 3 上的工件的 groovy 脚本(不是 nexus 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com