J'ai ajouté le plugin suivant dans la construction Maven dans pom.xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<extension>true</extension>
<clearOutputDir>false</clearOutputDir>
<schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
<schemaFiles>myapp.xsd</schemaFiles>
<outputDirectory>${basedir}/src/main/Java</outputDirectory>
<bindingDirectory>src/main/resources/xsd</bindingDirectory>
<bindingFiles>myapp-bindings.xjb</bindingFiles>
</configuration>
</execution>
</executions>
</plugin>
Voici l'erreur de construction.
[INFO] Ignored given or default xjbSources [C:\WorkSpace\MyApp\src\main\xjb], since it is not an existent file or directory.
[INFO] Ignored given or default sources [C:\WorkSpace\MyApp\src\main\xsd], since it is not an existent file or directory.
[WARNING] No XSD files found. Please check your plugin configuration.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.273s
[INFO] Finished at: Tue May 12 16:24:26 EDT 2015
[INFO] Final Memory: 9M/124M
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "dev-artifactory" could not be activated because it does not exist.
[ERROR] Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:2.1:xjc (default) on project pml-jasypt-authentication-service: MojoExecutionException: NoSchemasException -> [Help 1]
Je suis confus, pourquoi le plugin ne fait-il pas référence aux chemins et aux fichiers spécifiés dans la configuration.
La version 2.1 a changé la manière dont les sources sont spécifiées
http://mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html#sources
par exemple
<configuration>
...
<sources>
<source>some/explicit/relative/file.xsd</source>
<source>/another/absolute/path/to/a/specification.xsd</source>
<source>a/directory/holding/xsds</source>
</sources>
</configuration>
Je rencontre tout un monde d'autres problèmes, donc rester avec 1.6 comme l'a suggéré jshark est un bon plan
la version 2.1 a un bogue.
Vous pouvez utiliser <version>2.2</version>
avec la nouvelle syntaxe:
<configuration>
...
<sources>
<source>some/explicit/relative/file.xsd</source>
<source>/another/absolute/path/to/a/specification.xsd</source>
<source>a/directory/holding/xsds</source>
</sources>
</configuration>
Vous pouvez utiliser <version>1.6</version>
avec l'ancienne syntaxe:
<configuration>
...
<schemaDirectory>${basedir}/src/main/resources/xsd</schemaDirectory>
<schemaFiles>myapp.xsd</schemaFiles>
</configuration>
J'ai eu le même problème aujourd'hui et je l'ai résolu en mettant:
<version>1.6</version>
sur la définition du plugin (ce qui est généralement une bonne pratique)
Nous pouvons également utiliser comme ci-dessous:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>id1</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<outputDirectory>src/main/Java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
<packageName>com.subu.xsd.model</packageName>
<schemaDirectory>src/main/Java/schemadir</schemaDirectory>
<schemaFiles>XYZ.xsd</schemaFiles>
</configuration>
</execution>
</executions>
</plugin>
Je l'ai résolu en cochant l'option "Forcer la mise à jour de l'instantané/de la version" dans Eclipse maven update.
Cela l'oblige à mettre à jour toutes les dépendances associées.
Je l’ai fonctionné en réglant la version du compilateur sur JDK 1.8
et jaxb2-maven-plugin
version 1.5
Selon le documention cela fonctionnera avec un minimum de JDK 1.6 [Le lien peut tomber mort s'il est modifié sur le site]. Par exemple :
<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mntq.jaxb.xsd.to.pojo</groupId>
<artifactId>XsdToPojo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<finalName>PersistencePoJO</finalName>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- The package of your generated sources -->
<packageName>com.mntq.jaxb.pojo</packageName>
</configuration>
</plugin>
</plugins>
</build>
</project>