Autres conseils

Pour éviter de charger les fichiers jar et de les installer, vous pouvez ajouter une dépendance au référentiel Spring. Alors changez légèrement la dépendance normale:

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

et ajoutez une déclaration de référentiel:

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

Et cela devrait maintenant fonctionner (toutes les classes de soleil sont disponibles javax.media.jai. *). Voir ici:

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

Vous pouvez également ajouter la dépendance du codec si nécessaire ...

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

Il existe un "autonome". implémentation de JAI-imageio, sans dépendances à jai_core. Il n’est pas nécessaire d’installer JAI sur votre JDK et votre JRE, seulement une dépendance unique Maven.

Dans Maven, ajoutez son référentiel:

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

et dépendance:

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

Voir son site pour plus de détails

PS Mis à jour après un commentaire utile (autre dépendance de gitHub qui n'a pas besoin d'ajouter ce référentiel):

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

Vous devrez télécharger les fichiers JAR et les installer dans votre référentiel Maven local ou votre serveur proxy de référentiel local (Nexus / Artifactory). Je pense que vous pouvez utiliser le maven -forcer-plugin pour valider l'environnement les paramètres sont là.

La licence pour jai_imageio ne lui permet pas d'être distribué .

Cela a fonctionné pour moi:

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

Il semble que gt-coverage dépend de jai_imageio, il a donc installé les bocaux appropriés pour moi. Je n'ai même pas eu besoin de changer de code pour utiliser cet artefact.

Votre code fonctionnera dans votre IDE. Cependant, si vous voulez un fichier jar exécutable, vous devez utiliser le plugin Maven Shade. Son utilisation est décrite ici et ici . Notez les lignes supplémentaires dans le 2e lien car elles sont nécessaires. Voici le code supplémentaire à insérer dans votre 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>

Je ne sais pas ce que sont toutes ces entrées de manifeste supplémentaires, mais cela fait que mon jar exécutable fait ce qu'il fait dans l'EDI.

L'URL du référentiel dans la réponse de manunu semble avoir changé ou du moins est temporairement indisponible , ce qui entraîne l'échec de la création de maven. Vous pouvez également utiliser l'URL suivante:

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>

et ajoutez une déclaration de référentiel:

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

Cela a fonctionné pour moi. Devinez peut compter sur Spring Jar, il ne devrait pas bouger comme java

essayez ceci:

<dependency>
  <groupId>com.sun.media</groupId>
  <artifactId>jai_imageio</artifactId>
  <version>1.1</version>
  <type>pom</type>
</dependency>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top