Resolução de dependência via plug-in Shade para NoClassDefFoundError
Em uma primeira experiência com Maven, podem surgir inconsistências entre o Eclipse e o uso da linha de comando devido a gerenciamento de dependências. Apesar da criação bem-sucedida do projeto Maven e da adição de dependências no Eclipse, a execução do projeto por meio da linha de comando pode resultar em um NoClassDefFoundError.
Por padrão, o Maven empacota as dependências separadamente e não as inclui no arquivo JAR compilado. Essa omissão faz com que o Java VM falhe ao tentar localizar classes de biblioteca durante a execução.
Em vez de adicionar bibliotecas manualmente ao caminho de classe, o plug-in maven-shade fornece uma solução mais eficiente. Ele cria um "uber-JAR" que combina classes de aplicativo com o código de biblioteca necessário.
Para implementar isso, adicione a seguinte configuração de plugin ao seu POM:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
Depois de adicionar esta configuração, execute novamente os seguintes comandos:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
Para opções de configuração avançadas, como especificar JARs incluídos ou um arquivo JAR executável, consulte a seção "Exemplos" no site maven-shade-plugin.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3