Vraptor3 + custom scanner

Boa noite,
Eu estou segmentando meus projetos dentro do eclipse, desta forma alguns controllers foram removidos do projeto web principal e movidos para projetos adjacentes ( que foram colocados como dependência no projeto web principal);
A Dependência entre os projetos é dada através do maven, meu problema é que os controllers que foram movidos não são localizados pelos Vraptor.
Pesquisei a este respeito e achei uma possível solução, a qual indica uma alteração no web.xml adicionando o parametro “br.com.caelum.vraptor.packages” porém acho que está não seria a melhor opção visto que eu posso ter várias dependência e estas podem mudar conforme o cenário.
Diante disto minha pretenção seria fazer um scaner para os resources, de modo a pegar as dependências do meu projeto web e procurar e registar os componentes. Isso é possível? Se sim poderiam me auxiliar.

Desde já agradeço a atenção.

Nunca vi ninguém fazer isso, mas teoricamente é possível. O pacote de scanning do vraptor está aqui: https://github.com/caelum/vraptor/tree/master/vraptor-core/src/main/java/br/com/caelum/vraptor/scan

Você também terá que alterar a chamada do WebAppBootstrap conforme o container IoC. No caso do Guice é na classe GuiceProvider. Você precisará estender um CustomProvider como descrito aqui: http://vraptor.caelum.com.br/pt/docs/injecao-de-dependencias/

garcia-jj, obrigado pelo retorno!
Não compreendi muito bem o que tu disseste, mas eu teria que ter um custom Providers? O que eu necessito é que o Vraptor reconheça os componentes que estão nos projetos que são dependências do meu projeto web principal.

Exemplo

O projetoWeb tem dependência para um projeto X, neste projeto por sua vez eu tenho um controller (@Resource) e este recurso não está acessível no projetoWeb, só preciso que o vraptor passe a reconhecer este recurso.

Eu entendi o que você quer. E a solução para isso é adicionar no web.xml os pacotes, pois assim o vraptor faz o scan deles para você.

Porém você disse que não queria fazer isso, e que queria criar um scanning customizado. E minha resposta foi para criar um scanner customizado :slight_smile:

Se você quer apenas que o vraptor leia resources de outros modulos/projetos, basta adicionar os pacotes no web.xml.

Se você quiser criar um scanner customizado, basta seguir as instruções que te passei acima.