贾设置 是相当繁琐,涉及多个罐和环境变量。它将有助于项目的可携带性的相当多如果我可以增加它作为一个普通的专家的依赖。

POM段,我使用的是

<dependency>
  <groupId>com.sun.media</groupId>
  <artifactId>jai_imageio</artifactId>
  <version>1.1</version>
</dependency>

和错误

[INFO] ------------------------------------------------------------------------                               
[ERROR] BUILD ERROR                                                                                             
[INFO] ------------------------------------------------------------------------                                 
[INFO] Failed to resolve artifact.                                                                              

Missing:   
----------
1) com.sun.media:jai_imageio:jar:1.1
2) javax.media:jai_core:jar:1.1.3

我当然可以下载,安装这些瓶子。问题是双重的:

  • jai_imageio需要两个罐子;
  • jai_imageio需要地图书馆安装和两环境变量来加以设定。

我还没有找到一种方法,使这项工作与家.


看看 阅读JCS_YCCK图像使用ImageIO 因为我使用的是洁.

有帮助吗?

解决方案 5

什么我没有看到的是,JAI依赖性需要加以满足,只有在运行,因此我确信生产环境有访问杰,通过配置为Tomcat。

其他提示

为了避免donwloading的罐子装他们可以添加一种依赖于弹簧回购。所以改变正常依赖略:

    <dependency>
        <groupId>javax.media.jai</groupId>
        <artifactId>com.springsource.javax.media.jai.core</artifactId>
        <version>1.1.3</version>
    </dependency>

并添加一个储存库宣言:

    <repository>
        <id>com.springsource.repository.bundles.external</id>
        <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
        <url>http://repository.springsource.com/maven/bundles/external</url>
    </repository>

它应该现在的工作(它使所有的太阳课程内媒体。贾伊*.*).在这里看到:

http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.javax.media.jai.core&version=1.1.3

你还可以添加编的依赖性,如果有必要...

http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.javax.media.jai.codec&version=1.1.3

有一个"独立的"执行JAI-imageio,而不依赖于jai_core.它不需要宰安装到你的JAVA和java运行环境,只有单个的专家的依赖。

在专家,将它添加的储存库:

<repository>
    <releases />
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
    <id>mygrid-repository</id>
    <name>myGrid Repository</name>
    <url>http://www.mygrid.org.uk/maven/repository</url>
</repository>

和依赖关系:

<dependency>
    <groupId>net.java.dev.jai-imageio</groupId>
    <artifactId>jai-imageio-core-standalone</artifactId>
    <version>1.2-pre-dr-b04-2014-09-13</version>
</dependency>

看看 其网站 更多详细信息

PS更新后的一个有用的评论(另一个依赖关系。这并不需要增加储存库):

<dependency>
    <groupId>com.github.jai-imageio</groupId>
    <artifactId>jai-imageio-core</artifactId>
    <version>1.3.0</version>
</dependency>

你需要下载罐,并将它们安装在你的当地专家库,或者当地的储存库的代理服务器(Nexus/Artifactory).我认为你可以使用 家实施者-插件 验证环境设置的存在。

许可证 为jai_imageio不允许它可以 分布.

这个工作对我说:

<dependency>
    <groupId>org.geotools</groupId>
    <artifactId>gt-coverage</artifactId>
    <version>2.7.4</version>
</dependency>

<repository>
    <id>osgeo</id>
    <name>Open Source Geospatial Foundation Repository</name>
    <url>http://download.osgeo.org/webdav/geotools/</url>
</repository>

它似乎是gt-复盖范围取决于jai_imageio,因此它安装适当的瓶子给我。我甚至都没有改变我的代码使用这个项目。

这会让你代码的工作在你的IDE。但是,如果你想要一个可执行的罐子里,然后你需要使用专家阴影的插件。其使用说明 在这里,在这里,.注意到额外的行在第2链路,因为它们是必要的。这是额外的代码,去你的聚:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.3.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <manifestEntries>
                            <Main-Class>com.companyname.packagename.MainClassName</Main-Class>
                            <Specification-Title>Java Advanced Imaging Image I/O Tools</Specification-Title>
                            <Specification-Version>1.1</Specification-Version>
                            <Specification-Vendor>Sun Microsystems, Inc.</Specification-Vendor>
                            <Implementation-Title>com.sun.media.imageio</Implementation-Title>
                            <Implementation-Version>1.1</Implementation-Version>
                            <Implementation-Vendor>Sun Microsystems, Inc.</Implementation-Vendor>
                            <Extension-Name>com.sun.media.imageio</Extension-Name>
                        </manifestEntries>
                    </transformer>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

我不知道什么所有的这些额外的清单的条目,但是他们让我可执行的罐子做什么它不会在环境。

库网址在manunu的回答似乎已经改变,或者至少是 暂时不可用的, ,这会导致家建立失败。作为替代,以下网址可以使用:

http://build.mygrid.org.uk/maven/repository

<repository>
   <releases />
   <snapshots>
      <enabled>false</enabled>
   </snapshots>
   <id>mygrid-repository</id>
   <name>myGrid Repository</name>
   <url>http://build.mygrid.org.uk/maven/repository</url>
</repository>
<dependency>
    <groupId>javax.media.jai</groupId>
    <artifactId>com.springsource.javax.media.jai.core</artifactId>
    <version>1.1.3</version>
</dependency>

并添加一个储存库宣言:

<repository>
    <id>com.springsource.repository.bundles.external</id>
    <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/external</url>
</repository>

这为我工作。猜猜我可以依赖弹的罐子,它不应该移动java这样做

试试这个:

<dependency>
  <groupId>com.sun.media</groupId>
  <artifactId>jai_imageio</artifactId>
  <version>1.1</version>
  <type>pom</type>
</dependency>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top