Pergunta

Quero construir um "TOJAVACODE ()" no meu modelo que geraria o código -fonte Java necessário para gerar esse modelo (não importa os motivos ou se deveria ou não deve ser feito, nem os problemas de compatibilidade que podem ocorrer).

Estou sem saber como testar isso. Estou usando o MAVEN, mas as fontes de geração não funcionam para mim, pois meu servidor precisa estar pronto para testes adequados em massa. Eu levanto o servidor durante a meta do "teste", mas o Generate Sources é muito cedo.

Por outro lado, embora eu possa usar o compilador embutido (do Tools.jar no JDK) para fazer isso, não sei como posso embalar no frasco para testar (ou carregar esse frasco).

Alguma ideia?

Foi útil?

Solução

Você pode usar o Javacompiler API Para compilar seus arquivos de origem e configurar um Classloader para carregar as classes compiladas em seu teste (Código de amostra). Tools.jar deve estar no caminho de classe. É esse o caso se o JDK for usado.

Se o seu código gerado for estável para qualquer classe que você possa usar Processador de anotação Para gerar o código -fonte e compilá -lo na mesma execução JAVAC que a classe anotada.

Outras dicas

Você pode adicionar tarefas de formigas ao seu Maven. Essa é uma maneira de algo 'ordens fora do clássico' durante uma construção do Maven. Como adicionar uma tarefa JAVAC ANT à meta de teste Mavens.

(Desculpe, estou tão confuso quanto seu comentarista Matt B - mas as tarefas de formigas incorporadas são sua faca do Exército suíço aqui.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top