当前位置: 首页 > 知识库问答 >
问题:

在Nexus Sonatype中用groovy删除资产和组件

吕宇定
2023-03-14

我们正在使用最新版本的nexus,我希望创建一个清理任务。

我有一个时髦的脚本,它运行我从事务对象获得的可迭代组件列表。

现在我想找到组件的资产,然后删除资产和组件。

我的脚本如下所示:

// Get a repository
def repo = repository.repositoryManager.get('maven-releases');
// Get a database transaction
def tx = repo.facet(StorageFacet).txSupplier().get();
// Begin the transaction
tx.begin();

def components = tx.browseComponents(tx.findBucket(repo));

// retention date
def retentionDate = new DateTime();
retentionDate.minusDays(1);

components.each{comp ->
    def lastComp = comp.group() + comp.name();
    def lastModDate = comp.lastUpdated();

    if(lastModDate.isBefore(retentionDate)) {
        // here -----------
        // tx.deleteAsset(<asset>)
        // -----------------
        tx.deleteComponent(comp);
        log.info("${lastComp} deleted!");
    }

    log.info("anz: ${assetCount} ${comp.version()} - ${lastModDate} - ${retentionDate}");
}

// End the transaction*/
tx.commit();

是否可以找到组件的相应资产?

共有1个答案

郑俊彦
2023-03-14

这很容易:

Asset asset = tx.findAsset(comp.entityMetadata.getId(), tx.findBucket(repo));
 类似资料:
  • 我们想删除一个资源组,其中包含一个具有IP和存储帐户等的VM。 除了存储帐户之外,所有内容都被删除了,因为vhd说它仍然有租约。由于以下错误消息,我无法中断租约: 有没有办法打破租约,在租约处于活动状态时删除blob,或者找出它的租赁对象? 其他信息:在“编辑blob”选项卡上的vhd上,我收到以下消息:

  • 我希望限制文件操作,如创建文件、删除文件等。我已经与SecureASTCustomizer进行了检查,但这仅限于导入包级别。如果任何一个在groovy类中直接使用而没有导入包,那么它就是允许脚本和允许do操作,这就是我们面临的问题。我尝试过这一点,但没有成功。 是否可以仅限制特定类的少数方法,如文件的删除方法、新文件创建等。?请建议使用groovy实现这一点的任何方法。

  • 我有以下xml。 我想要的是 我想做的是只使用名称空间xmlns:i=”获取节点GetPatientTreatmentTeamResult下的文本(该节点在不同的调用中会有所不同)http://www.w3.org/2001/XMLSchema-instance(所有调用都有这个)并且不使用实际的节点名。 我尝试过使用XmlParser和XmlSlurper 但我一直没能得到我想要的结果。 我该怎

  • 问题内容: 我试图找到在组件状态下从数组中删除元素的最佳方法。由于我不应该直接修改变量,是否有比我在这里有更好的方法(更简洁)从数组中删除元素?: 谢谢。 更新 这已更新为在setState中使用回调。在更新当前状态时,应执行此操作。 问题答案: 我见过的最干净的方法是:

  • 本文向大家介绍在Python中删除匹配的元组,包括了在Python中删除匹配的元组的使用技巧和注意事项,需要的朋友参考一下 当需要从两个元组列表中删除匹配的元组时,可以使用列表推导。 列表可用于存储异构值(即,任何数据类型的数据,例如整数,浮点数,字符串等)。 元组列表基本上包含包含在列表中的元组。 列表理解是迭代列表并对其执行操作的一种快捷方式。 以下是相同的演示- 示例 输出结果 解释 定义了