2012-01-19 16 views
2

我正在嘗試使用Batik庫源文件,我只想使用轉碼器將SVG文件轉換爲PNG或JPEG格式。 Batik Rasterizer的發佈版本大約是55k,但是當我輸出jar文件時,它的大小爲7 megs。我可以使用代碼轉換器而不是庫中的所有罐子嗎?我在Coldfusion中加載了jar文件。只使用分發版本會更有意義嗎?我是否可以只使用Batik庫的Transcoder而無需其他蠟染代碼和依賴項?

+2

什麼是對罐子大小關注的原因嗎?因爲你確實需要的不僅僅是代碼轉換器,儘管可能不是所有的罐子。這是一個過時的[依賴關係圖](http://xmlgraphics.apache.org/batik/install.html#dependencyGraph)。另外,您是否要替換隨CF附帶的Batik縮小版或僅使用JavaLoader? – Leigh

+0

對不起,我想簡單地使用庫來將SVG文件轉換爲服務器上的jpg,我看到了關於如何在A CF服務器上合併SVG轉換的教程。除非需要轉換SVG文件,否則我不想加載任何jar文件。我實際上將jar文件直接安裝在服務器上,並嘗試使用javaloader。 – Jesse

+1

好的,那麼它不是一個真正的大小考慮因素。老實說,它可能比它值得的更多的工作。最終,圖書館需要它需要的工作。這可能是五個罐子或五十個。但是,通常情況下會有更多,而不是太少。依賴關係會根據執行的操作而有所不同。我不知道有一個全面的依賴列表。 (我見過的最接近的就是上面的鏈接。)爲了你的目的,你可能會忽略一些明顯的例如「squiggle」,「swing」,「gui」,etectera。除此之外,您可能需要嘗試。 – Leigh

回答

3

這是batik-transcoder 1.6-1使用mvn dependency:tree -Dverbose的依賴關係樹:

[INFO] +- batik:batik-transcoder:jar:1.6-1:compile 
[INFO] | +- batik:batik-bridge:jar:1.6-1:compile 
[INFO] | | +- batik:batik-gvt:jar:1.6-1:compile 
[INFO] | | | \- batik:batik-awt-util:jar:1.6-1:compile 
[INFO] | | |  \- batik:batik-util:jar:1.6-1:compile 
[INFO] | | |  \- (batik:batik-gui-util:jar:1.6-1:compile - omitted for duplicate) 
[INFO] | | +- (batik:batik-bridge:jar:1.6-1:compile - omitted for cycle) 
[INFO] | | +- batik:batik-script:jar:1.6-1:compile 
[INFO] | | \- batik:batik-svg-dom:jar:1.6-1:compile 
[INFO] | |  +- batik:batik-dom:jar:1.6-1:compile 
[INFO] | |  | +- batik:batik-css:jar:1.6-1:compile 
[INFO] | |  | | \- (batik:batik-util:jar:1.6-1:compile - omitted for duplicate) 
[INFO] | |  | +- batik:batik-xml:jar:1.6-1:compile 
[INFO] | |  | | \- (batik:batik-util:jar:1.6-1:compile - omitted for duplicate) 
[INFO] | |  | \- (xerces:xercesImpl:jar:2.5.0:compile - omitted for conflict with 2.2.1) 
[INFO] | |  \- batik:batik-parser:jar:1.6-1:compile 
[INFO] | |  \- (batik:batik-awt-util:jar:1.6-1:compile - omitted for duplicate) 
[INFO] | \- fop:fop:jar:0.20.5:compile 
[INFO] |  +- batik:batik-1.5-fop:jar:0.20-5:compile 
[INFO] |  +- xml-apis:xml-apis:jar:1.0.b2:compile 
[INFO] |  +- (xalan:xalan:jar:2.4.1:compile - omitted for duplicate) 
[INFO] |  +- xerces:xercesImpl:jar:2.2.1:compile 
[INFO] |  \- avalon-framework:avalon-framework:jar:4.0:compile 
[INFO] +- batik:batik-gui-util:jar:1.6-1:provided (scope not updated to compile) 
[INFO] | \- (batik:batik-ext:jar:1.6-1:provided - omitted for duplicate) 
[INFO] +- batik:batik-ext:jar:1.6-1:provided 
[INFO] | \- xml-apis:xmlParserAPIs:jar:2.0.2:provided 
[INFO] +- rhino:js:jar:1.5R4.1:provided 
[INFO] \- xalan:xalan:jar:2.4.1:provided (scope not updated to compile) 

如果你使用Maven的,你可以設置一些依賴於<scope>provided</scope>

例如,我可以exlude這些沒有問題,節省我可以。 1.6MB:

<dependencies> 
... 
    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-gui-util</artifactId> 
     <version>1.6-1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-ext</artifactId> 
     <version>1.6-1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>rhino</groupId> 
     <artifactId>js</artifactId> 
     <version>1.5R4.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>xalan</groupId> 
     <artifactId>xalan</artifactId> 
     <version>2.4.1</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

看來,這是最大的依賴關係:

http://repo.maven.apache.org/maven2/xerces/xercesImpl/2.2.1/xercesImpl-2.2.1.jar (816 KB at 851.9 KB/sec) 
http://repo.maven.apache.org/maven2/xalan/xalan/2.4.1/xalan-2.4.1.jar (1007 KB at 479.7 KB/sec) 
http://repo.maven.apache.org/maven2/fop/fop/0.20.5/fop-0.20.5.jar (1485 KB at 1011.7 KB/sec) 
http://repo.maven.apache.org/maven2/batik/batik-1.5-fop/0.20-5/batik-1.5-fop-0.20-5.jar (2063 KB at 936.0 KB/sec) 
1

不完全確定你想完成什麼,但ProGuard將允許你篩選未被代碼使用的jar中的類。

+0

感謝您的幫助,我真的很感激。我會檢查鏈接。 – Jesse

+0

我想通了,我剛剛創建了一個jar文件,並在服務器上使用java加載器。我非常感謝大家幫助我。 – Jesse

相關問題