2013-07-17 4 views
3

별도의 구성으로 Maven 플러그인 내에 두 개의 실행 블록을 만들려고하지만 maven은 실행 블록 내부의 구성 블록을 무시하고 실행 블록 외부의 구성 블록 만 사용합니다.Maven이 실행 구성을 무시합니다

그래서 문제를 좁히기 위해 작업 플러그인 섹션을 가져 와서 작업 구성을 실행 블록 내부로 약간 옮긴 다음 작동을 멈 춥니 다 (wsdl은 여전히 ​​선택되어 있습니다 (실제로 둘 다 있습니다) ,하지만 이는 기본 디렉토리에 있기 때문에 간단합니다. 바인딩 파일과 다른 구성의 비 구성 요소는 구성 섹션이 실행 블록 안에있을 때 선택됩니다. 실제로는 두 번째 wsdl을 인식하지 않아야합니다.

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

이 내가 해결해야 받는다는 문제 또는 잭스 - WS 문제이며 어떻게이 문제를 해결합니까 : 나는) 어디를 지정하지 않은?

[ERROR]을 목표 org.jvnet.jax-WS-공유지 실행하지 못했습니다

: 잭스 - WS-받는다는 - 플러그인 : 2.3 : wsimport의 (기본값 나는 2.3 버전을 변경하는 경우

, 나는 다음과 같은 오류가 -cli) : mycee-project 프로젝트 : 목표 org.jvnet.jax-ws-commons의 실행 기본값 -cli : jaxws-maven-plugin : 2.3 : wsimport 실패 : 문자열 인덱스가 범위를 벗어났습니다. -1 -> [Help 1]

실행 MVN 깨끗한 잭스 - WS :

[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] ======================================================================= 
: wsimport의 -X 나는이 기본값을 사용하고있는 디버그 출력에서 ​​볼 수

범위 오류 중 인덱스에 대한 디버그 출력 :

[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 

전체 치어는 요청에 따라 :

<?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> 
+0

요청시 전체 용량이 추가되었습니다. jmorews 설정에 2.1을 추가했는데, 이는 maven 오류를 제거하는 것처럼 보이지만 실행 블록 안에있을 때 설정되지 않은 문제를 해결하지 못합니다. –

답변

3

은 다음과 같아야합니다 귀하의 치어가 :

<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.jvnet.jax-ws-commons</groupId> 
     <artifactId>jaxws-maven-plugin</artifactId> 
     <version>2.1</version> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
    <plugins> 
    <plugin> 
     <groupId>org.jvnet.jax-ws-commons</groupId> 
     <artifactId>jaxws-maven-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>basic</id> 
      <phase>generate-sources</phase> 
      <goals> 
      <goal>wsimport</goal> 
      </goals>    
      <configuration> 
      <packageName>com.mycee.project.model</packageName> 
      <wsdlFiles> 
       <wsdlFile>${basedir}/src/wsdl/wsdla.wsdl</wsdlFile>    
      </wsdlFiles> 
      <bindingDirectory>${basedir}/src/jaxws/binding</bindingDirectory> 
      <verbose>true</verbose> 
      <target>2.1</target> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins>  
</build> 

이 문제는 기반 당신은 pluginManagement 블록에있는 모든 것을하고 빌드 블록에 있지는 않습니다. 이것은 실제로 실행되지 않았 음을 의미합니다.

+0

당신이 말한 것처럼 내가 만든 후에 bindingDiles를 bindingFiles로 바꿀 때까지 여전히 작동하지 않습니다. 당신은 내 영웅입니다 :-) 이 귀중한 메이븐 팁을 가르쳐 주셔서 감사합니다 !! –

1

위의 사항은 맞지만 실행 노드 내부에 있으므로 구성이 무시됩니다. 제가 하나 개 이상의 노드를 실행했을 때 작동하는 데 동일한 문제가 있었다

<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> 
      <!-- 
      if you have one more than one execution node put your configuration here 
      --> 
      <goals> 
       <goal>wsimport</goal> 
      </goals>    
     </execution> 
    </executions> 
    <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> 
</plugin> 

(예컨대 아래) 플러그인 노드로 이동 및 구성이 작동한다. 다른 프로젝트에서 동일한 클라이언트를 사용하고 나면 구성이 무시 된 것처럼 보였습니다.

짧은 스토리를 유지하려면 실행 노드가 하나 인 경우 외부에 구성을 유지하고 그렇지 않은 경우 노드를 유지하십시오.

+2

구성이 동일하면 몇 가지 실행의 요점은 무엇입니까? –

+0

당신은 어떤 점을 가지고 있습니다 -하지만 문서에 따르면 구성은 "실행"노드 안에 있어야합니다. –

+2

maven 3.3.1 이후의 실행 설정은 https://maven.apache.org/docs/3.3.1/release-notes.html에서 허용됩니다. –

관련 문제