Принимает ли Nexus строки Groovy в сценарии?

После запуска скрипта groovy в качестве задачи для создания роли с помощью:

security.addRole(// id
                 roleDeveloper, 
                 // name
                 roleDeveloper, 
                 // description
                 "A developer on ${repoCap} group",
                 // privileges
                 ["nx-repository-view-maven2-${repo}-dependencies-browse",
                  "nx-repository-view-maven2-${repo}-dependencies-read"],
                 // roles
                 ["dw-all-public-repos"])

Я не могу получить доступ к меню ролей. Я получаю следующую ошибку:

com.orientechnologies.orient.core.exception.ODatabaseException: Error on deserialization of Serializable DB name="security"
[...]
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.GStringImpl
  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) [na:1.8.0_91]
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [na:1.8.0_91]
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [na:1.8.0_91]
  at org.apache.felix.framework.BundleWiringImpl.doImplicitBootDelegation(BundleWiringImpl.java:1782) [na:na]
  at org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWiringImpl.java:1717) [na:na]
  at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1552) [na:na]
  at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) [na:na]
  at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018) [na:na]

После запуска нескольких тестов (с интерполяцией строк и без нее) в нескольких версиях Nexus (3.x) оказалось, что интерполяции строк поддерживаются для некоторых параметров, но не для параметра привилегии.

Это известная проблема?

Теперь, когда мое меню Роли недоступно из-за указанной выше ошибки, есть ли способ исправить это? (Я пытался удалить его с помощью скрипта, но это не удалось, потому что удалить сначала выполнить загрузку)


person Alexandre Ardhuin    schedule 27.03.2017    source источник


Ответы (1)


Извините за проблемы, Александр. Похоже, вам придется подключиться к базе данных напрямую, чтобы исправить проблемные записи. Инструкции о том, как сделать это с Nexus в автономном режиме, находятся здесь: https://support.sonatype.com/hc/en-us/articles/115002930827-Accessing-the-OrientDB-Console

В частности, база данных, к которой вы хотите подключиться, является «безопасной»:

connect plocal:data/db/security admin admin

И таблицы, которые вам нужно будет проверить/удалить, это «привилегия» и «роль». Я буду следить здесь, если у вас возникнут проблемы или возникнут дополнительные вопросы.

person TheKaptain    schedule 30.03.2017