2015-01-06 3 views
1

У меня есть этот код:Как сделать Maven resolver для Shrinkwrap работы?

@Deployment(name = "default") 
public static WebArchive getTestArchive() { 
    File[] file = Maven.resolver().loadPomFromFile("../pom.xml") 
      .importCompileAndRuntimeDependencies() 
      .resolve("org.restlet.gae:org.restlet").withTransitivity().asFile(); 
    System.out.println("FILE>>>>>>>>" + file.toString()); 
    return ShrinkWrap.create(WebArchive.class, "simple.war") 
      .addClass(org.restlet.ext.servlet.ServerServlet.class) 
      .setWebXML("web.xml") 
      .addAsWebInfResource("appengine-web.xml") 
      .addAsWebInfResource("logging.properties"); 
} 

Однако при выполнении теста он бросает эту ошибку:

Caused by: org.jboss.shrinkwrap.resolver.api.ResolutionException: Unable to get version for dependency specified by org.restlet.gae:org.restlet:compile, it was not provided in neither <dependencyManagement> nor <dependencies> sections. 
    at org.jboss.shrinkwrap.resolver.impl.maven.task.ResolveVersionFromMetadataTask.execute(ResolveVersionFromMetadataTask.java:91) 
    at org.jboss.shrinkwrap.resolver.impl.maven.PomEquippedResolveStageBaseImpl.resolveVersion(PomEquippedResolveStageBaseImpl.java:85) 
    at org.jboss.shrinkwrap.resolver.impl.maven.ResolveStageBaseImpl.resolveDependency(ResolveStageBaseImpl.java:189) 
    at org.jboss.shrinkwrap.resolver.impl.maven.ResolveStageBaseImpl.resolveDependency(ResolveStageBaseImpl.java:184) 
    at org.jboss.shrinkwrap.resolver.impl.maven.ResolveStageBaseImpl.resolve(ResolveStageBaseImpl.java:78) 
    at org.jboss.shrinkwrap.resolver.impl.maven.ResolveStageBaseImpl.resolve(ResolveStageBaseImpl.java:43) 
    ... 58 more 

Моя цель состоит в том, что все зависимости от ОРП быть решены так (надеюсь) будет работать тест arquillian Restlet.

ответ

3

Причина вашей ошибки кажется довольно очевидной. В вашем коде отсутствует номер версии артефакта перезапуска.

Это должно выглядеть примерно так:

File[] file = Maven.resolver().loadPomFromFile("../pom.xml") 
      .importCompileAndRuntimeDependencies() 
      .resolve("org.restlet.gae:org.restlet:2.3.0") // Notice version number 
      .withTransitivity().asFile(); 

В качестве альтернативы вы можете указать версию внутри <dependencyManagement> секции, но говорит ваше сообщение об ошибке, что вы забыли об этом также.

+0

Большое спасибо !!! – xybrek

Смежные вопросы