문제

그만큼 JAI 설정 여러 항아리와 환경 변수가 포함되어 있습니다. 정기적 인 Maven 의존성으로 추가 할 수 있다면 프로젝트의 휴대 성을 상당히 많이 돕습니다.

내가 사용하는 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는 기본 라이브러리를 설치해야하고 두 가지 환경 변수를 설정해야합니다.

Maven과 함께이 작업을 할 방법을 찾지 못했습니다.


보다 imageio를 사용하여 JCS_YCCK 이미지를 읽습니다 내가 Jai를 사용하는 이유.

도움이 되었습니까?

해결책 5

내가 보지 못한 것은 JAI 의존성이 런타임에만 만족해야한다는 것이 었으므로 Tomcat 용으로 구성하여 생산 환경에 JAI에 액세스 할 수 있도록했습니다.

다른 팁

항아리에 대한 지폐를 피하고 설치하지 않으려면 스프링 repo에 종속성을 추가 할 수 있습니다. 따라서 정상 의존성을 약간 변경하십시오.

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

그리고 이제 작동해야합니다 (모든 Sun 클래스를 사용할 수있게합니다. javax.media.jai.*). 여기를 봐:

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

Jai_core에 의존하지 않고 Jai-Imageio의 "독립형"구현이 있습니다. JDK 및 JRE에 JAI 설치가 필요하지 않으며 단일 Maven 의존성 만 있습니다.

Maven에서는 저장소를 추가합니다.

<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는 유용한 주석 후 업데이트되었습니다 (해당 저장소를 추가 할 필요가없는 GitHub의 다른 종속성) :

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

항아리를 다운로드하여 로컬 Maven 저장소 또는 로컬 리포지토리 프록시 서버 (Nexus/Artifactory)에 설치해야합니다. 나는 당신이 사용할 수 있다고 생각합니다 Maven-Enforcer-Plugin 환경 설정이 있는지 확인하기 위해.

그만큼 특허 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 내에서 코드가 작동하게됩니다. 그러나 실행 가능한 JAR을 원한다면 Maven Shade 플러그인을 사용해야합니다. 그것의 사용이 설명되어 있습니다 여기 그리고 여기. 두 번째 링크의 추가 선이 필요하므로 주목하십시오. POM에 들어갈 추가 코드는 다음과 같습니다.

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

나는 그 추가 명백한 항목이 무엇인지 잘 모르겠지만, 내 실행 가능한 항아리가 IDE에서하는 일을하게합니다.

Manunu의 답변의 저장소 URL은 변경된 것 같습니다. 일시적으로 사용할 수 없습니다, Maven 빌드가 실패하게됩니다. 대안으로, 다음 URL을 사용할 수 있습니다.

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>

이것은 나를 위해 효과가있었습니다. 추측은 Spring Jar에 의존 할 수 있습니다. 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