我可以只使用Batik库的Transcoder而不需要所有其他Batik代码和依赖项吗?

时间:2012-01-19 21:32:09

标签: java coldfusion batik

我正在尝试使用Batik库源,我只想使用代码转换器将SVG文件转换为仅PNG或JPEG。 Batik Rasterizer的发行版本大约是55k,但是当我导出jar文件时它的7兆。我可以只使用代码转换器而不是库中的所有罐子吗?我在Coldfusion中加载jar文件。仅使用分发版本会更有意义吗?

2 个答案:

答案 0 :(得分:3)

这是使用batik-transcoder的{​​{1}} 1.6-1的依赖关系树:

mvn dependency:tree -Dverbose

如果您使用maven,则可以将某些依赖项设置为[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)

例如,我可以毫无问题地排除这些,这使我节省了大量时间。 1.6MB:

<scope>provided</scope>

似乎这些是最大的依赖项:

<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>

答案 1 :(得分:1)

不完全确定您要完成的任务,但ProGuard将允许您过滤代码未使用的jar中的类。