2017-05-14 1 views
0

다른 외부 jar에 종속 된 클래스 파일을 만들었습니다. 내 프로그램에 대해 실행 불가능한 jar 파일을 생성했으며 jar 파일의 메소드에 액세스하기 위해 클래스 로더를 사용하고 있습니다. 하지만 종속 항아리에서 NoClassfoundException으로 내 호출이 실패합니다. 종속 항아리는 클래스 로더를 사용하여로드하려는 항아리 파일과 동일한 위치에 배치됩니다.외부 라이브러리를 Non Executable Jar와 연결

a. 외부 jar 파일을 연결하려면 더 많은 작업이 필요합니다. b. 다른 jar 파일을 실행 가능한 jar 파일로 변환하지 않고도이 작업을 수행 할 수있는 다른 옵션이 있습니까?

답변

0

실제로 단일 실행 항아리를 만들기 위해 그것을 사용 다음의 pom.xml을 사용하려고하지만 비 실행

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.ga</groupId> 
<artifactId>GAChainMR</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>jar</packaging> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 
<dependencies> 
...... 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 

     <!-- Skip the tests run. --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.15</version> 
      <configuration> 
       <skipTests>true</skipTests> 
      </configuration> 
     </plugin> 

     <!-- Sources generation --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.4</version> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>jar-no-fork</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      </plugin> 
    </plugins> 
</build> 

지금 그것을 수정 내가 MVN 패키지 명령을 사용하여 단지를 구축하고 항아리에있는 모든 의존성을 발견하고, 시도해보고 알려줘. 위의 pom에 외부 항아리를 추가하십시오

+0

감사합니다. 나는 이것을 시험해보고 효과가 있다면 알려주겠습니다. –

+0

그것이 효과가 있습니까? @SujithShajee –

+0

고맙습니다. 귀하가 제공 한 접근 방식을 통해 지금은 더 나아갈 수있었습니다. 하지만 종속 라이브러리를 독립적 인 jar 파일과 독립적으로 유지하고 단일 jar 파일로 빌드하지 않는 데 도움이되는 솔루션을 찾으려고 했습니까? 가능하면 해줄까요? –