"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso resolver o "NoClassDefFoundError" no Maven ao executar a partir da linha de comando?

Como posso resolver o "NoClassDefFoundError" no Maven ao executar a partir da linha de comando?

Publicado em 2024-11-08
Navegar:217

How can I resolve the \

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.

Tutorial mais recente Mais>

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