2017-06-08 11 views
0

私のアプリケーションでHikariCPをコンパイルしようとすると、java.lang.NoClassDefFoundError: com/zaxxer/hikari/HikariConfigエラーが発生します。NoClassDefFoundError with HikariCP

これは.jarファイルに組み込まれますが、実行時にアプリケーションが見つけられないようです。

<?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>me.MyApp.App</groupId> 
    <artifactId>App</artifactId> 
    <version>1.0-SNAPSHOT</version> 



    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>3.0.0</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
        <archive> 
         <manifest> 
          <mainClass>me.MyApp.App</mainClass> 
         </manifest> 
         <manifestEntries> 
          <Class-Path>.</Class-Path> 
         </manifestEntries> 
        </archive> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 


    <dependencies> 
     <dependency> 
      <groupId>com.zaxxer</groupId> 
      <artifactId>HikariCP</artifactId> 
      <version>2.6.2</version> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 



</project> 

私はアセンブリプラグインを追加すると修正すると思っていましたが、修正できませんでした。私は間違って何をしていますか?

+0

EDIT:IntelliJの内から出力が働いたのように見える "抽出" が、なぜ?なぜこれだけの設定はありませんか? – kinx

答えて

0

あなたは、これは持っているので:

   <archive> 
        <manifest> 
         <mainClass>me.MyApp.App</mainClass> 
        </manifest> 
        <manifestEntries> 
         <Class-Path>.</Class-Path> 
        </manifestEntries> 
       </archive> 

...私は、これはMANIFEST.MFであなたのClass-Pathエントリはちょうどであることを意味していることを前提となり「」 (現在のディレクトリのみ - JARファイルなし)。

私はあなたがそれを変更することをお勧めしたい:

   <archive> 
        <manifest> 
         <mainClass>me.MyApp.App</mainClass> 
         <addClasspath>true</addClasspath> 
        </manifest> 
       </archive> 

Reference Link