关于Sonatype Nexus 3 Groovy函数列表及API文档的技术问询
获取Sonatype Nexus 3 Groovy脚本API方法的实用途径
其实不用到处找外部链接,Nexus本身就自带了不少能帮你梳理API的工具,还有一些实用的方法:
脚本控制台的代码补全功能
打开Nexus UI里的「System > Scripts」,新建一个Groovy脚本,当你输入security.之后按下Ctrl+Space(不同浏览器快捷键可能略有差异),就能看到所有可用的方法提示,很多还会附带参数说明。像你提到的security.securitySystem.changePassword,在这里就能直接看到它需要的参数(用户名、旧密码、新密码)和功能描述,非常直观。查看底层Java类源码
Nexus的Groovy脚本API本质是直接调用内部的Java服务,所以你可以通过查看对应Java类来获取完整的方法列表。比如securitySystem对应的是org.sonatype.nexus.security.SecuritySystem类,你可以在Nexus安装目录的jar包(比如nexus-security-*.jar)里找到它,用JD-GUI这类反编译工具打开就能看到所有公开方法的详细定义。参考官方脚本示例
Sonatype提供了大量官方Groovy脚本示例,覆盖用户权限、仓库管理、Blob存储等各种场景。这些示例里用到的方法都是经过验证的常用API,你可以从这些例子里快速学习到各个对象的调用方式,比如修改密码、创建角色这类操作的具体写法。
Nexus 3常用Groovy脚本对象及核心方法整理
下面是日常脚本开发中最常用的一些对象和它们的核心方法:
安全模块(Security)
security.securitySystemchangePassword(String username, String oldPassword, String newPassword): 修改指定用户的密码createUser(User user, String password): 创建新用户,需要传入用户对象和初始密码getUser(String username): 获取指定用户的详细信息deleteUser(String username): 删除指定用户
security.authorizationManagercreateRole(Role role): 创建新角色getRole(String roleId): 获取指定角色的配置信息assignRole(String username, String roleId): 给指定用户分配角色
仓库管理(Repository)
repository.repositoryManagercreate(Repository repository): 创建新仓库,需要传入仓库配置对象delete(String repositoryName): 删除指定名称的仓库get(String repositoryName): 获取指定仓库的配置信息update(Repository repository): 更新仓库配置
Blob存储管理(Blob Store)
blobStore.blobStoreManagercreate(BlobStoreConfiguration config): 创建新的Blob存储delete(String blobStoreName): 删除指定名称的Blob存储get(String blobStoreName): 获取Blob存储的配置信息update(BlobStoreConfiguration config): 更新Blob存储配置
系统管理(System)
system.systemManagergetSystemInformation(): 获取Nexus的系统信息,包括版本、运行状态等restart(): 触发Nexus服务重启
内容的提问来源于stack exchange,提问作者Samuel Mutel




