Maven中目标执行的机制

时间:2014-03-18 17:30:27

标签: java maven maven-2

我的项目中有 wsimport 插件。

我想执行wsimport。根据该网站,要执行的字符串是" mvn jaxws:wsimport"

首先,这个字符串是否可以从XML中删除?

工件ID是:

<artifactId>jaxws-maven-plugin</artifactId>

和目标:

<goal>wsimport</goal>

神器部分也是artifactid的子串,导致&#34; -maven-plugin&#34; ?

..当我执行我的插件目标&#34; mvn jaxws:wsimport&#34;这完全忽略了我所处的阶段吗? IE浏览器。这是否在阶段之外运行?如果不是,有没有办法独立运行?

即。有没有办法将阶段设置为无? (例如[阶段]无[/阶段])。

Pom代码:

<build>
    <plugins>
        <plugin>
            <groupId>org.jvnet.jax-ws-commons</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <version>2.3</version>
            <executions>                    
                <execution>
                    <id>wsimport-from-jdk</id>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <executable>${tool.wsimport}</executable>
                        <wsdlUrls>
                            <wsdlUrl>http://WorkPC:8080/server-web/AirlineWS?wsdl</wsdlUrl>     
                        </wsdlUrls>
                        <packageName>com.bluewalrus</packageName>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:0)

当你发出像mvn [plugin]:[goal]这样的命令时,它会在任何生命周期中启动Maven,所以如果你不想在生命周期内执行那个目标,只能通过这样的命令,你就不应该有{已定义{1}},只需将<execution>放在<configuration>之后。 关于Maven如何缩短插件调用(即<version>而不是mvn dependency:tree),它基于几个约定:

  1. 如果未定义版本,则会尝试从可用存储库中获取最新版本
  2. 当省略groupId时,它会在预定义或用户定义的 pluginGroups 中查找,以找到合适的一个。 See here for more information(配置Maven搜索插件)
  3. 在同一页面上,您可以通过使用前缀而不是插件的artifactId来查看插件前缀如何用于缩短插件前缀。 Thirdparty插件应该使用[prefix] -maven-plugin构造,它在这里看起来很好。
  4. 要禁用插件的默认执行(虽然在这种情况下可能没用),you can use this answer