Como empacotar código / arquivos / recursos não Java em um JAR com MAVEN

Eu estava usando Java em conjunto com arquivos-fonte Rhino e JavaScript para Citero e não tinha parado para pensar se eles estavam sendo empacotados ou não. Acontece que não eram, mas felizmente descobri como fazer do jeito Maven.

Em primeiro lugar, você deve seguir a estrutura de diretórios do maven . Acontece que recursos não-java não vão em src / main / java / (duh!). Eles vão em src / main / resources (doi!) . O Maven empacotará automaticamente tudo nesse diretório e manterá a estrutura do diretório quando você executar mvn package.

Em segundo lugar, para acessar esses mesmos recursos de dentro do seu projeto, você pode usar getClass().getResource()os getClass().getResourceAsStream() métodos ou .

E finalmente você pode usar StringWritere IOUtils(Apache Commons) para converter esse idiota em uma string !