Maven ignore l'exécution de la configuration
J'essaie d'avoir deux d'exécution des blocs à l'intérieur d'un plugin maven avec des configurations distinctes, mais maven semble ignorer la configuration des blocs à l'intérieur de l'exécution des blocs et utilise uniquement le bloc de configuration en dehors de l'exécution du bloc.
Afin de cerner le problème, j'ai pris un travail section plugin et le transfert de la configuration de travail légèrement vers l'intérieur, de l'exécution du bloc, puis il a cessé de travailler (le wsdl est encore ramassé (en fait les deux sont), mais c'est tout simplement parce qu'il est assis dans le répertoire par défaut, le fichier de liaison et non de l'autre configuration est sélectionné lorsque la section de configuration est assis à l'intérieur de l'exécution du bloc et en fait, il ne devrait même pas être au courant de la deuxième wsdl, puisque je n'ai pas précisé nulle part):
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>wsdla</id>
<phase>generate-sources</phase>
<configuration>
<packageName>com.mycee.project.model</packageName>
<sourceDestDir>src/main/java</sourceDestDir>
<wsdlFiles>
<wsdlFile>
${basedir}/src/wsdl/a.wsdl
</wsdlFile>
</wsdlFiles>
<bindingDirectory>
${basedir}/src/wsdl/binding
</bindingDirectory>
<verbose>true</verbose>
</configuration>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
Est-ce une maven problème que je dois résoudre ou un jaxws problème et comment puis-je résoudre ce problème?
Si je change la version 2.3, j'obtiens l'erreur suivante:
[ERREUR] Échec de l'exécution de l'objectif org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (par défaut-cli) sur le projet mycee-projet: Exécution par défaut-cli de l'objectif org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport a échoué: String index out of range: -1 -> [Aide 1]
de course mvn clean jaxws:wsimport -X
Je peux voir dans la sortie de débogage que c'est en utilisant les paramètres par défaut:
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal: org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (default-cli)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<bindingDirectory default-value="${basedir}/src/jaxws"/>
<destDir default-value="${project.build.outputDirectory}"/>
<encoding>${project.build.sourceEncoding}</encoding>
<extension default-value="false"/>
<genJWS default-value="false"/>
<implDestDir default-value="${project.build.sourceDirectory}"/>
<keep default-value="true"/>
<localRepository default-value="${localRepository}"/>
<pluginArtifactMap>${plugin.artifactMap}</pluginArtifactMap>
<quiet default-value="false"/>
<remoteRepositories default-value="${project.pluginArtifactRepositories}"/>
<settings>${settings}</settings>
<sourceDestDir default-value="${project.build.directory}/generated-sources/wsimport"/>
<staleFile default-value="${project.build.directory}/jaxws/stale"/>
<verbose default-value="false"/>
<wsdlDirectory default-value="${basedir}/src/wsdl"/>
<xadditionalHeaders default-value="false"/>
<xdebug default-value="false"/>
<xdisableAuthenticator default-value="false"/>
<xdisableSSLHostnameVerification default-value="false"/>
<xnoAddressingDataBinding default-value="false"/>
<xnocompile default-value="true"/>
<xuseBaseResourceAndURLToLoadWSDL default-value="false"/>
<project default-value="${project}"/>
</configuration>
[DEBUG] =======================================================================
La sortie de débogage pour l'indice en dehors de la plage d'erreur:
[ERROR] Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (default-cli) on project mycee-project: Execution default-cli of goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport failed: String index out of range: -1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport (default-cli) on project mycee-project: Execution default-cli of goal org.jvnet.jax-ws-c
ommons:jaxws-maven-plugin:2.3:wsimport failed: String index out of range: -1
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.jvnet.jax-ws-commons:jaxws-maven-plugin:2.3:wsimport failed: String index out of range: -1
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:872)
at java.lang.StringBuilder.substring(StringBuilder.java:72)
at org.jvnet.jax_ws_commons.jaxws.AbstractJaxwsMojo.getCP(AbstractJaxwsMojo.java:484)
at org.jvnet.jax_ws_commons.jaxws.AbstractJaxwsMojo.exec(AbstractJaxwsMojo.java:359)
at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.processLocalWsdlFiles(WsImportMojo.java:319)
at org.jvnet.jax_ws_commons.jaxws.WsImportMojo.execute(WsImportMojo.java:283)
at org.jvnet.jax_ws_commons.jaxws.MainWsImportMojo.execute(MainWsImportMojo.java:50)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
... 20 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
Plein pom comme demandé:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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.mycee</groupId>
<artifactId>mycee-project</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>
<name>mycee</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>1.7.2</slf4j.version>
</properties>
<repositories>
</repositories>
<pluginRepositories>
</pluginRepositories>
<dependencies>
<!-- Junit4 Dependencies -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<!-- XML Dependencies -->
<dependency>
<groupId>javax.xml</groupId>
<artifactId>webservices-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.8</version>
</dependency>
<!-- Log Dependencies -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>basic</id>
<phase>generate-sources</phase>
<configuration>
<packageName>com.mycee.project.model</packageName>
<sourceDestDir>src/main/java</sourceDestDir>
<wsdlFiles>
<wsdlFile>
${basedir}/src/wsdl/wsdla.wsdl
</wsdlFile>
</wsdlFiles>
<bindingDirectory>
${basedir}/src/jaxws/binding
</bindingDirectory>
<verbose>true</verbose>
<target>2.1</target>
</configuration>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
OriginalL'auteur Jan Vladimir Mostert | 2013-07-17
Vous devez vous connecter pour publier un commentaire.
Votre pom devrait ressembler à ceci:
Le problème est basé sur ce que vous faites tous les trucs dans le pluginManagement bloc et de ne pas en construire de bloc qui signifie qu'il n'est pas vraiment exécuté.
OriginalL'auteur khmarbaise
Le point ci-dessus est correcte, mais votre maven est ignorant de configuration parce que vous avez à l'intérieur de la exécution nœud. De le déplacer dans la plugin nœud et une configuration de travail (p. ex. ci-dessous)
J'ai eu le même problème qui a l'habitude de travailler quand j'ai eu plus d'un nœud d'exécution. Après j'ai utilisé le même client dans un autre projet, la configuration semble être ignoré.
Donc pour garder une longue histoire courte: si vous avez un nœud d'exécution garder la configuration à l'extérieur sinon le garder à l'intérieur.
Vous avez un point - mais, selon la documentation de la configuration doit être à l'intérieur de "l'exécution" nœud.
configuration à l'intérieur de l'exécution est autorisée depuis maven 3.3.1 maven.apache.org/docs/3.3.1/release-notes.html
OriginalL'auteur Patrik Bego