2013-06-27 39 views
3

我正在尝试使用在maven构建中声明的wsimport目标来使用webservice。但我面临着m2e connectors的问题。我的POM中有一个错误,它说适用于JAX-WS的Eclipse m2e连接器org.codehaus.mojo

Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:jaxws-maven- 
      plugin:1.10:wsimport (execution: default, phase: generate-sources) 

我一直在试图安装m2e连接器,但没有在市场上获得它们。还有其他的m2e连接器,但不是我需要的JAX-WS。

我遵循并尝试几乎所有提到的解决方案here但都是徒劳的。

尽管在生成资源方面没有问题。这些资源是在构建时成功生成的,但是这个POM错误不允许我的项目与我的tomcat同步,并且每次我必须手动部署战争来测试我所做的小改动。

这一切都很烦人,我需要找出解决方案。我在这里使用eclipse juno。 下面是我使用

<build> 
    <finalName>home</finalName> 
    <plugins>  
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <version>1.10</version> 
      <executions> 
       <execution> 
        <phase>post-clean</phase> 
        <goals> 
         <goal>wsimport</goal> 
        </goals> 
       </execution> 
      </executions> 
      <!-- --> 
      <configuration> 
       <wsdlUrls> 
        <wsdlUrl>http://localhost:8080/email-service/services/EmailService?wsdl</wsdlUrl> 
       </wsdlUrls> 
       <sourceDestDir>${project.build.directory}/generated</sourceDestDir> 
       <verbose>true</verbose> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>additional-resources</id> 
        <phase>process-resources</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/home/WEB-INF/classes</outputDirectory> 
         <resources> 
          <resource> 
           <directory>${project.basedir}/src/main/webapp/resources/props</directory> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

回答

5

有一个M2E JAXWS Maven的连接器的GitHub项目POM文件:https://github.com/trajano/jaxws-maven-connector。它用Eclipse Kepler和org.codehaus.mojo:jaxws-maven-plugin:1.12为我工作。

  1. 选择帮助菜单安装新软件
  2. 添加库https://raw.github.com/trajano/jaxws-maven-connector/master/jaxws-connector-update-site/(见project
  3. 安装了JAXWS和重启M2E连接器。
  4. 导入Maven项目或更新Eclipse Maven项目配置。
1

虽然我没有保持jaxws-maven-connector更新了最新的M2E和JAXWS-Maven的插件来工作,我发现你下面的配置文件添加到一个更好的方法(这也是我贴在http://www.trajano.net/2013/12/jaxws-maven-plugin-and-m2e/

您pom.xml文件,以消除对不可发现的M2E插件的需求。

<profile> 
     <id>m2e</id> 
     <activation> 
      <property> 
       <name>m2e.version</name> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>build-helper-maven-plugin</artifactId> 
        <version>1.8</version> 
        <executions> 
         <execution> 
          <id>attach-wsimport-sources</id> 
          <phase>generate-sources</phase> 
          <goals> 
           <goal>add-source</goal> 
          </goals> 
          <configuration> 
           <sources> 
            <source>${basedir}/target/generated-sources/wsimport</source> 
           </sources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
      <pluginManagement> 
       <plugins> 
        <plugin> 
         <groupId>org.eclipse.m2e</groupId> 
         <artifactId>lifecycle-mapping</artifactId> 
         <version>1.0.0</version> 
         <configuration> 
          <lifecycleMappingMetadata> 
           <pluginExecutions> 
            <pluginExecution> 
             <pluginExecutionFilter> 
              <groupId> 
               org.jvnet.jax-ws-commons 
              </groupId> 
              <artifactId> 
               jaxws-maven-plugin 
              </artifactId> 
              <versionRange> 
               [2.3.1-b03,) 
              </versionRange> 
              <goals> 
               <goal>wsimport</goal> 
              </goals> 
             </pluginExecutionFilter> 
             <action> 
              <execute /> 
             </action> 
            </pluginExecution> 
           </pluginExecutions> 
          </lifecycleMappingMetadata> 
         </configuration> 
        </plugin> 
       </plugins> 
      </pluginManagement> 
     </build> 
    </profile> 

对于JAXWS-Maven的插件配置,只需将其保持到尽可能多的默认值:

<plugin> 
      <groupId>org.jvnet.jax-ws-commons</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <version>2.3.1-b03</version> 
      <configuration> 
       <wsdlUrls> 
        <wsdlUrl>http://www.webservicex.net/ConvertAcceleration.asmx?WSDL</wsdlUrl> 
       </wsdlUrls> 
      </configuration> 
      <executions> 
       <execution> 
        <id>wsimport</id> 
        <goals> 
         <goal>wsimport</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
4

投票https://java.net/jira/browse/JAX_WS_COMMONS-124和得到这个固定的插件。 然后你不需要连接器。

在此期间,你可以破解这个按照阿基米德特拉雅诺的帖子

+0

啊互联网我是多么爱你 - 我已经走过了一年后,寻找这个问题的答案,这里是答案,虽然增加M2E支持还没有发生。 – Bae

相关问题