>Java >java지도 시간 >명령줄에서 실행할 때 Maven 종속성에서 \'NoClassDefFoundError\'를 수정하는 방법은 무엇입니까?

명령줄에서 실행할 때 Maven 종속성에서 \'NoClassDefFoundError\'를 수정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-25 09:07:02310검색

How to Fix

"Maven 종속성에서 NoClassDefFoundError"를 수정하는 방법

명령줄에서 Maven 프로젝트를 실행하려고 하면 NoClassDefFoundError가 발생할 수 있습니다. , 필수 종속성이 누락되었음을 나타냅니다.

이 오류의 주된 이유는 Maven이 빌드하는 JAR 파일에 종속성을 자동으로 포함하지 않기 때문입니다. 이 문제를 해결하려면 라이브러리 코드를 출력 JAR 파일에 "음영 처리"해야 합니다.

이를 달성하려면 maven-shade-plugin을 사용할 수 있습니다. POM에 추가하는 방법은 다음과 같습니다.

<code class="xml"><project>
  ...
  <build>
    <plugins>
      <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>
    </plugins>
  </build>
  ...
</project></code>

이 플러그인은 클래스와 라이브러리 종속성을 포함하는 "uber-JAR"을 자동으로 생성합니다.

플러그인이 등록되면 다음 명령을 실행할 수 있습니다.

<code class="sh">$ mvn package
$ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App</code>

오류가 지속되면 Shade 플러그인을 추가로 구성하여 포함해야 하는 JAR을 지정하거나 실행 가능한 JAR 파일에 대한 Main-Class를 설정할 수 있습니다. 자세한 내용은 maven-shade-plugin 문서를 참조하세요.

위 내용은 명령줄에서 실행할 때 Maven 종속성에서 \'NoClassDefFoundError\'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.