首页 > 解决方案 > 2个插件在pom中不能同时工作

问题描述

我在 build 标签下添加了 2 个插件,这两个插件的功能都是在目标文件夹下生成一些类。每当我尝试clean installmaven 应用程序时,默认情况下每次都会清理目标,然后将新内容安装到目标文件夹中,这是理想的方式。

但是在下面的代码中,只有在只有单个插件的情况下才会生成 Java 类。我必须手动注释任何一个插件,然后我需要安装 maven 目标,然后为单个插件生成 Java 类,我需要为第二个插件重复同样的事情。

 <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>${project.build.directory}/generated-sources/somefolder</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>somefolder</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <wsdlDirectory>src/main/webapp/WEB-INF/wsdl</wsdlDirectory>
                <wsdlFiles>
                    <wsdlFile>myfirstwsdl.wsdl</wsdlFile>
                </wsdlFiles>
                <wsdlLocation>/WEB-INF/wsdl/*</wsdlLocation>
                <extension>true</extension>
                <target>2.2</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>wsimport</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <wsdlDirectory>src/main/webapp/WEB-INF/wsdl</wsdlDirectory>
                <wsdlFiles>
                    <wsdlFile>mysecondwsdl.wsdl</wsdlFile>
                </wsdlFiles>
                <wsdlLocation>/WEB-INF/wsdl/*</wsdlLocation>
                <extension>true</extension>
                <target>2.2</target>
            </configuration>
        </plugin>
    </plugins>
</build>

我的问题是,如何在不注释目标文件夹下的任何插件的情况下同时生成 Java 类?

标签: javamavensoapwsdlpom.xml

解决方案


您两次指定相同的插件,这是行不通的。您需要像这样合并两者(<configuration>向内移动<execution>):

     <plugin>
        <groupId>org.jvnet.jax-ws-commons</groupId>
        <artifactId>jaxws-maven-plugin</artifactId>
        <executions>
            <execution>
             <id>somefolder</id>
             <phase>generate-sources</phase>
             <goals>
                <goal>wsimport</goal>
             </goals>
             <configuration>
               <wsdlDirectory>src/main/webapp/WEB-INF/wsdl</wsdlDirectory>
               <wsdlFiles>
                  <wsdlFile>myfirstwsdl.wsdl</wsdlFile>
                </wsdlFiles>
                <wsdlLocation>/WEB-INF/wsdl/*</wsdlLocation>
                <extension>true</extension>
                <target>2.2</target>
              </configuration>
            </execution>
            <execution>
                <id>wsimport</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>wsimport</goal>
                </goals>
                <configuration>
                  <wsdlDirectory>src/main/webapp/WEB-INF/wsdl</wsdlDirectory>
                  <wsdlFiles>
                    <wsdlFile>mysecondwsdl.wsdl</wsdlFile>
                  </wsdlFiles>
                  <wsdlLocation>/WEB-INF/wsdl/*</wsdlLocation>
                  <extension>true</extension>
                  <target>2.2</target>
              </configuration>
            </execution>
        </executions>
    </plugin>

推荐阅读