2013-09-02 1 views
5

を動作することを、私はJasper Reports(バニラは、動作するようにGrails Jasper pluginをやったことがなかった - thisを参照)の両方を使用したいものは、別のためにいくつかのレポートのために、より適している(とGrails Rendering pluginをその他)。iTextのバージョンを使用するようにプラグインをレンダリング両方JasperReportsのとGrailsは

'com.lowagie:itext:2.1.5'または 'com.lowagie:itext:4.2.1'を含めると、レンダリングプラグインの実行時にcom.lowagie.text.pdf.BaseFont.getCharBBoxが表示されませんPDFレポート。

'com.lowagie:itext:2.0.8'を含めると、JasperのPDFレポートを実行するとcom.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlendingが表示されません。

どちらもjava.lang.NoSuchMethodError-sで失敗しています。

最新のiTextバージョンで試したわけではありませんが、パッケージ名が異なり、ライセンスがより制限されているため、適切ではないと思います。

マイBuildConfig.groovyは、この(最初の3つの依存関係の1つは、コメントを外し取得)のようになります。

dependencies { 
    // runtime 'com.lowagie:itext:4.2.1' // missing.BaseFont.getCharBBox 
    // runtime 'com.lowagie:itext:2.0.8' // missing PdfWriter.setRgbTransparencyBlending 
    // runtime 'com.lowagie:itext:2.1.5' // missing.BaseFont.getCharBBox 
    compile 'net.sf.jasperreports:jasperreports:5.2.0' // needed by jasper 
    runtime 'org.springframework:spring-test:3.2.4.RELEASE' // needed by rendering plugin 
    runtime 'commons-collections:commons-collections:3.2.1' // needed for jasper    
} 

plugins { 
    // ... 
     compile ":rendering:0.4.4" 
    // compile ":jasper:1.6.1" // couldn't get this to generate anything, but not sure it would help any 
    // ... 
} 

はiTextの(MPLライセンス)のいずれかの「古い」バージョンは、私はそれが動作して試すことができるとあります?

Maven/Gradleにライブラリ/プラグインの1つにiTextの1つのバージョンを使用させ、もう1つのバージョンを使用するように依頼する方法はありますか?

+1

* JasperReports *ライブラリの各バージョンは、サードパーティのライブラリの特定のバージョンによって異なります。 * iText *はこのルールの例外ではありません。 * iText *の依存関係を実験するために、自分の責任で試すことができます。 * iText *のバージョンは、* JR *ライブラリの* pom.xml *(* com.lowagie.itext *アーティファクトを参照)で見つけることができます。たとえば、* JR 5.2.0 *は*** com.lowagie.itext-2.1.7.js2 ***アーティファクトを使用しています –

+0

ありがとう、これは役に立ちます。 私はhttps://github.com/flyingsaucerproject/flyingsaucer/blob/master/flying-saucer-pdf/pom.xmlを参照しています。2.1.7 itextを使用しているようですが、とにかく失敗します。私はフライングソーサーの欠陥を開けると思う。 –

+0

それは、JasperとFlying Saucerはそれぞれ異なるバージョンのiTextライブラリでしか動作しないと仮定すると、それを解決するために何ができるのですか? –

答えて

0

ソリューションは、レンダリングプラグインを含めたときに「除外」句を使用することです:

compile(":rendering:0.4.4") { 
     excludes(
      [group:'org.xhtmlrenderer'], 
      [group:'com.lowagie'] 
     ) 
    } 

org.xhtmlrendererフライングソーサーコア・レンダラの古いバージョンがあるとしてこれは本当にすべての問題を解決しませんGrails自体に含まれている-R8.jar(grails-docsに依存しています)がありますが、iTextの依存関係をどのように動作させるかについてのこの特定の質問に答えています(除外項目には 'com.lowagie:itext:2.1。 7 'とJasperとレンダリングプラグインの両方で動作します

関連する問題