Dependência do módulo refere-se a um módulo sendo dependente ou exigindo outro módulo. As dependências de módulo foram introduzidas na seção Declarando dependência de outros módulos seção no artigo “Desenvolvendo um módulo com Java 9 no Eclipse IDE, Parte 1”. No primeiro de dois artigos, “Usando Dependências de Módulos, Parte 1”, criamos dois projetos Java para dois módulos, um módulo principal e um módulo de dependência. Não poderíamos ter criado os dois módulos em um projeto Java porque o Eclipse IDE não suporta vários módulos em um único projeto. Tendo criado dois projetos, neste artigo de continuação iremos exportar cada projeto para um arquivo JAR separado. Exportar e usar um módulo como um arquivo JAR é discutido em um tutorial anterior, “Usando um módulo Java 9 como um arquivo JAR”. Adicionar vários módulos em um único JAR não é suportado atualmente, mas está planejado para uma versão Java futura. Neste artigo, discutiremos a configuração dos dois projetos Java e a execução do aplicativo do módulo principal para demonstrar a dependência do módulo. Este artigo tem as seguintes seções:
- Definindo o caminho de construção do projeto Java principal
- Exportando o projeto Java principal para um arquivo JAR
- Exportando o projeto Java de dependência para um arquivo JAR
- Adicionar uma configuração de execução
- Executando o aplicativo Java do módulo principal
- Conclusão
Definindo o caminho de construção do projeto Java principal
Os dois projetos Java desenvolvidos anteriormente apresentam erros, conforme indicado pelos marcadores vermelhos na Figura 1. Os erros são indicados porque os dois módulos são definidos em projetos separados e o projeto de dependência não está no caminho de construção do projeto principal.
Figura 1: Projetos Java com erros
Nesta seção, vamos configurar o caminho de construção para o MainModule projeto para adicionar o HelloJavaModule projeto para o caminho de construção. Clique com o botão direito do mouse em MainModule no Package Explorer e selecione Build Path>Configure Build Path , como mostrado na Figura 2.
Figura 2: Explorador de pacotes>Caminho de compilação>Configurar caminho de compilação
Nas Propriedades janela, o Caminho de compilação Java as configurações padrão são exibidas, conforme mostrado na Figura 3.
Figura 3: Caminho de compilação Java
Selecione os Projetos guia e selecione Modulepath , conforme mostrado na Figura 4. Clique em Adicionar…
Figura 4: Caminho de construção Java>Projetos>Modulepath>Adicionar…
A Seleção de Projeto Necessária janela exibe o projeto de dependência HelloJavaModule , conforme mostrado na Figura 5. Selecione o HelloJavaModule projeto e clique em OK.
Figura 5: Selecionando um projeto para adicionar
O HelloJavaModule projeto é adicionado ao Modulepath (ver Figura 6). Clique em Aplicar e Fechar .
Figura 6: Projeto Java HelloJavaModule adicionado ao Modulepath
Os erros e marcadores vermelhos são removidos do MainModule projeto, como mostrado na Figura 7.
Figura 7: Erros removidos do MainModule
Exportando o projeto Java principal para um arquivo JAR
Adicionando o HelloJavaModule projeto para o caminho de compilação do MainModule project remove apenas os erros de tempo de compilação/compilação. Para tempo de execução, precisaríamos exportar cada um dos módulos para um arquivo JAR e adicionar os arquivos JAR ao caminho do módulo de tempo de execução para quando o projeto for executado. Os arquivos JAR precisariam ser exportados para a mesma pasta para que possamos configurar o caminho do módulo sem fazer referência aos módulos nos projetos. Conforme mencionado anteriormente, um JAR multimódulo ainda não é suportado, mas está planejado para ser suportado em uma versão posterior do Java.
Para exportar o MainModule projeto para um arquivo JAR, clique com o botão direito do mouse em MainModule no Package Explorer e selecione Exportar , como mostrado na Figura 8.
Figura 8: Explorador de Pacotes>MainModule>Exportar
Na Exportação janela, selecione Java>arquivo JAR , conforme mostrado na Figura 9, e clique em Avançar.
Figura 9: Exportar>Java>arquivo JAR>Avançar
Em Especificação de arquivo JAR , selecione o recurso a ser exportado como o MainModule , conforme mostrado na Figura 10. Selecione o destino de exportação como MainModulemodulesmainmodule.jar . Clique em Avançar.
Figura 10: Especificação do arquivo JAR
Selecione as Opções de embalagem JAR padrão (veja a Figura 11) e clique em Avançar.
Figura 11: Selecionando opções de embalagem
Em seguida, personalize a Especificação do manifesto JAR , que inclui selecionar a classe do ponto de entrada do aplicativo. Clique em Procurar para a classe principal , conforme mostrado na Figura 12.
Figura 12: Classe principal>Navegar
Em Selecionar classe principal , selecione o MainModule classe no main.module pacote, conforme mostrado na Figura 13, e clique em OK.
Figura 13: Selecionando a classe principal
Com a classe principal selecionado, clique em Concluir, conforme mostrado na Figura 14.
Figura 14: Exportar JAR>Concluir
O mainmodule.jar é exportado para o MainModule/modules diretório, conforme mostrado no Package Explorer na Figura 15.
Figura 15: JAR mainmodule.jar exportado
Exportando o projeto Java de dependência para um arquivo JAR
Nesta seção, vamos exportar o projeto de dependência HelloJavaModule para um arquivo JAR no mesmo diretório em que o módulo principal JAR é exportado. Para exportar o HelloJavaModule projeto para um arquivo JAR, clique com o botão direito do mouse no projeto no Package Explorer e selecione Exportar (ver Figura 16).
Figura 16: Explorador de Pacotes>HelloJavaModule>Exportar
Na Exportação janela, selecione Java>arquivo JAR , conforme mostrado na Figura 17, e clique em Avançar.
Figura 17: Exportar>Java>arquivo JAR>Avançar
Em Especificação de arquivo JAR , selecione o recurso a ser exportado como HelloJavaModule , conforme mostrado na Figura 18. Selecione o destino de exportação da mesma forma que para o módulo principal JAR, que é o MainModulemodules diretório. O nome do arquivo JAR precisaria ser diferente e é helloJavaModule.jar . Clique em Avançar.
Figura 18: Especificação de arquivo JAR para dependência JAR
Selecione as opções de empacotamento JAR padrão, conforme mostrado na Figura 19, e clique em Avançar.
Figura 19: Selecionando opções de embalagem
Em seguida, personalize a Especificação do Manifesto JAR. Como o projeto de dependência não inclui uma classe para um ponto de entrada do aplicativo, mantenha a Classe principal campo vazio, conforme mostrado na Figura 20, e clique em Concluir.
Figura 20: Nenhuma classe principal para projeto de dependência
O helloJavaModule.jar é exportado para o MainModule/modules diretório, conforme mostrado no Package Explorer na Figura 21.
Figura 21: JAR exportado helloJavaModule.jar
Adicionando uma configuração de execução
Para executar o aplicativo Java do módulo principal, precisamos criar uma configuração de execução para o MainModule projeto. Clique com o botão direito do mouse em MainModule no Package Explorer e selecione Propriedades , conforme mostrado na Figura 22.
Figura 22: Explorador de Pacotes>MainModule>Propriedades
Na janela Propriedades, selecione Configurações de execução/depuração e clique em Novo… para criar uma nova configuração de execução, conforme mostrado na Figura 23.
Figura 23: Propriedades>Executar configurações de depuração>Novo…
Em Selecionar tipo de configuração , selecione Aplicativo Java , conforme mostrado na Figura 24.
Figura 24: Selecionando o tipo de configuração como aplicativo Java
No assistente de configuração, especifique um nome (MainModuleConfig ) no Nome campo e com o projeto selecionado como MainModule clique em Pesquisar… para a classe principal , conforme mostrado na Figura 25.
Figura 25: Definir propriedades de configuração de inicialização
Em Selecionar tipo principal , selecione o main.module.MainModule digite (veja a Figura 26) e clique em OK.
Figura 26: Selecionando o tipo principal
Com a classe principal selecionado, clique em Argumentos tab para selecionar os argumentos da VM em seguida, conforme mostrado na Figura 27.
Figura 27: Selecionando a guia Argumentos
Adicione os seguintes argumentos de VM ao campo de argumentos de VM, conforme mostrado na Figura 28.
--module-path modules/helloJavaModule.jar;modules/mainmodule.jar -m mainModule/main.module.MainModule
O --module-path arg configura o caminho do módulo para os dois JARs para os dois módulos. O -m arg define o módulo. Clique em Aplicar , conforme mostrado na Figura 28.
Figura 28: Aplicando as definições de configuração de execução
Clique em OK, conforme mostrado na Figura 29, para concluir a configuração de execução.
Figura 29: Concluindo a configuração de execução
Uma nova configuração de execução, MainModuleConfig , é criado, conforme mostrado na Figura 30. Clique em Aplicar e Fechar na janela Propriedades.
Figura 30: Aplicando propriedades para o projeto MainModule
Executando o aplicativo Java do módulo principal
Em seguida, testaremos se o módulo principal invoca o módulo de dependência executando o aplicativo do módulo principal. Clique com o botão direito do mouse em MainModule.java no Package Explorer e selecione Executar como>Aplicativo Java (ver Figura 31).
Figura 31: Explorador de Pacotes>MainModule>Executar Como>Aplicativo Java
A saída do aplicativo Java é exibida no Console , conforme mostrado na Figura 32. A mensagem “Hello from” do módulo principal é combinada com a mensagem “Exported Java Module!” do módulo de dependência para exibir a mensagem “Hello from Exported Java Module!”.
Figura 32: Saída do console
Conclusão
Em dois artigos, discutimos o uso de dependências de módulo no Java 9.