2016-11-30 1 views
0

Ich bin mit dem Maven Plugin Montage einer einzigen JAR zu bauen, aber ich bin immer diese Fehlermeldung nach dem Ausführen der folgendenMaven Assembly: NoClassDefFoundError

java -jar target/pdfbox-printing-1.0-SNAPSHOT-jar-with-dependencies.jar 

der Fehler

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider 

dies ist, wie i kompilieren die JAR-

mvn clean compile assembly:single 

hier ist mein pom.xml

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.company.printing</groupId> 
    <artifactId>pdfbox-printing</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>pdfbox-printing</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.pdfbox</groupId> 
     <artifactId>pdfbox</artifactId> 
     <version>2.0.0</version> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <archive> 
      <manifest> 
       <mainClass>com.company.printing.App</mainClass> 
      </manifest> 
      </archive> 
      <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
      </descriptorRefs> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

ich versuche tatsächlich ein Projekt zu erstellen, das Apache pdfbox verwendet. und ich dachte, das Maven Assembly Plugin würde alle Abhängigkeiten in einem JAR bündeln, aber warum bekomme ich diesen Fehler wenn es wahr ist. indem Sie den folgenden in Ihrem <dependencies>

+0

BouncyCastle ist eine * optionale * Abhängigkeit (wird nur benötigt, wenn Sie mit verschlüsselten oder signierten PDFs arbeiten müssen); wahrscheinlich enthält das 'maven-assembly-plugin' keine optionalen Abhängigkeiten? – mkl

+0

wird die mvn-Kompilierung erfolgreich ausgeführt? – nullpointer

+0

ja @nullpointer – bazi

Antwort

1

Wie der Fehler liest, ist es NoClassDefFoundError für org/bouncycastle/jce/provider/BouncyCastleProvider, in dem Fall, dass Sie die Maven-Bibliothek für das gleiche verwenden können:

<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk16 --> 
<dependency> 
    <groupId>org.bouncycastle</groupId> 
    <artifactId>bcprov-jdk15on</artifactId> 
    <version>1.54</version> 
</dependency> 
<dependency> 
    <groupId>org.bouncycastle</groupId> 
    <artifactId>bcmail-jdk15on</artifactId> 
    <version>1.54</version> 
</dependency> 
<dependency> 
    <groupId>org.bouncycastle</groupId> 
    <artifactId>bcpkix-jdk15on</artifactId> 
    <version>1.54</version> 
</dependency> 

Dies soll Ihnen helfen, importieren Sie die Verpackung und Verwendung die erforderliche Klasse in Ihrem Code.

Weitere Abhängigkeiten sind möglicherweise erforderlich, siehe here.

+1

1.45 ist nicht die richtige Version für 2.0. Sehen Sie hier: https://pdfbox.apache.org/2.0/dependencies.html –

+0

@TilmanHaushrer bitte gehen Sie voran und bearbeiten Sie den Beitrag, der die aktualisierte Version hinzufügt, wenn Sie sie benutzt haben. Ich habe nur dafür gesorgt, dass für die erforderliche Klasse die korrekte Abhängigkeit enthalten ist. – nullpointer

Verwandte Themen