2017-12-30 45 views
1

JasperReportsでレポートを作成するJavaプログラムを作成しました。 私のJasperReportsの1つでは、テーマ= "eye.candy.sixties"を使用します。EclipseからJava Maven Jasperreportを実行します。java-jarを使用しています。JRRuntimeException:グラフテーマ "eye.candy.sixties"が見つかりません。

私はGUIでのEclipseからプロジェクトを実行すると、すべてが大丈夫です、私はMavenのと同じプロジェクトをビルドし、コマンドラインから実行するとき enter image description here

は、しかし、私はエラーを取得する参照してください。

Maven: clean compile assembly:single 
Command line: java -jar chartTheme-0.0.1-SNAPSHOT-jar-with-dependencies.jar 

Exception in thread "main" net.sf.jasperreports.engine.JRRuntimeException: Chart theme "eye.candy.sixties" not found.

何が欠けているのですか。私は何を変更する必要がありますか?助けを歓迎します!

ソースコードはGitHubの上で見つけることができます:ChartTheme

私は、Eclipseで」Mavenの依存関係のリストを参照して、Mavenの中にチャートのテーマの依存関係が含まれました:

enter image description here 、以下のコード(ポンポンで.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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.lightroomstatistics.samples</groupId> 
    <artifactId>chartTheme</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>chartTheme</name> 
    <description>chartTheme</description> 

    <url>www.lightroomstatistics.com</url> 
    <organization> 
     <name>LightroomStatistics</name> 
     <url>www.lightroomstatistics.com</url> 
    </organization> 

    <parent> 
     <groupId>com.lightroomstatistics.maven</groupId> 
     <artifactId>lightroomstatistics-parent-pom</artifactId> 
     <version>1.0.0</version> 
    </parent> 

    <properties> 
     <java.version>1.8</java.version> 
     <jasperreports.version>6.4.0</jasperreports.version> 
     <jasperreportsfonts.version>4.0.0</jasperreportsfonts.version> 
     <maven.compiler.target>1.8</maven.compiler.target> 
     <maven.compiler.source>1.8</maven.compiler.source> 
    </properties> 

    <repositories> 
     <!-- Needed for Jasperreports chart-themes --> 
     <repository> 
      <id>jr-ce-releases</id> 
      <name>JasperReports CE Releases</name> 
      <url>http://jaspersoft.jfrog.io/jaspersoft/jr-ce-releases</url> 
     </repository> 
    </repositories> 

    <dependencies> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>${jasperreports.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports-fonts</artifactId> 
      <version>${jasperreportsfonts.version}</version> 
     </dependency> 
     <!-- jasperreports-chart-themes --> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports-chart-themes</artifactId> 
      <version>${jasperreports.version}</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <resources> 
      <resource> 
       <directory>reports</directory> 
       <includes> 
        <include>**/*.*</include> 
       </includes> 
      </resource> 
      <resource> 
       <directory>data</directory> 
       <includes> 
        <include>**/*.*</include> 
       </includes> 
      </resource> 
     </resources> 

     <plugins> 
      <plugin> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>3.0.2</version> 
       <executions> 
        <execution> 
         <id>copy-report-resources</id> 
         <!-- here the phase you need --> 
         <phase>validate</phase> 
         <goals> 
          <goal>copy-resources</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${basedir}/target/reports</outputDirectory> 
          <resources> 
           <resource> 
            <directory>reports</directory> 
            <filtering>true</filtering> 
           </resource> 
          </resources> 
         </configuration> 
        </execution> 
        <execution> 
         <id>copy-data-resources</id> 
         <!-- here the phase you need --> 
         <phase>validate</phase> 
         <goals> 
          <goal>copy-resources</goal> 
         </goals> 
         <configuration> 
          <outputDirectory>${basedir}/target/data</outputDirectory> 
          <resources> 
           <resource> 
            <directory>data</directory> 
            <filtering>true</filtering> 
           </resource> 
          </resources> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>chartTheme.ChartThemesApp</mainClass> 
         </manifest> 
        </archive> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

答えて

1

あなたが建て共同ライブラリchartTheme-0.0.1-SNAPSHOT-jar-with-dependencies.jarを開くと、ファイルの内容ことを実現しますjasperreports-char-themes-6.4.0.jar/jasperreports_extension.propertiesあなたの依存関係に存在する他のファイルjasperreports_extension.propertiesの内容で上書きされたため、missingです。ところで、一つだけのファイルがアセンブリでスキップされていない、

[INFO] jasperreports_extension.properties already added, skipping

...:実際には

、あなたがmvn assemblyを実行した後、出力コンソールで検索した場合、あなたはこれらの痕跡を見つけることができます。

重複が原因で、これらの依存関係をまとめてアセンブルすることは間違いありません。少なくとも、この方法ではありません。

まず、assembly descriptor fileをパラメータ化して、望ましくないファイルを除外するようにしてください。jasperreports-chart-themes.jar(ログに記録されたトレースによって)と推定されます。

0

この問題を調査していただきありがとうございます。リトルサンティは私にその問題が何かを説明した。 また、大きなJARを持っていないのは、私はすべての依存関係jarを別のlibディレクトリ/フォルダに入れることにしました。これはうまくいった。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <classpathPrefix>lib/</classpathPrefix> 
         <mainClass>chartTheme.ChartThemesApp</mainClass> 
        </manifest> 
       </archive> 
       <finalName>${project.name}</finalName> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.5.1</version> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>package</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/lib/</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+0

大きなジャーを持つよりもはるかに良いと思います。おめでとう! –

関連する問題