-1

我们正在 flex-pmd-maven-plugin 中寻找一个选项,以使用命令行选项暂时跳过 pmd 执行。maven pmd 插件有一个 -Dpmd.skip=true 选项。

我也在为 flex-pmd-maven-plugin 寻找类似的东西。

        <plugin>
            <groupId>com.adobe.ac</groupId> 
            <artifactId>flex-pmd-maven-plugin</artifactId> 
            <version>${flex-pmd.version}</version> 
            <executions>
                <execution>
                    <phase>package</phase> 
                    <goals>
                        <goal>check</goal> 
                    </goals>
                </execution>
            </executions>
            <configuration>
                <ruleSet>build_rules/Flexpmd.xml</ruleSet> 
                <excludePackage>**/Mocked*.as</excludePackage>
            </configuration>
        </plugin>

我查看了插件的源代码,似乎没有选择这样做。欢迎任何想法或解决此问题的方法..

4

1 回答 1

0

我找到了一种无需实际删除插件即可跳过 Flex PMD 的解决方法。flex-pmd 插件在验证maven 阶段运行。我将插件中的阶段参数化为并将命令行参数 -Dpmd.phase 作为部署或包传递。

然后我运行命令

mvn clean install -Dpmd.phase=deploy

由于 maven 仅在安装阶段运行,并且 pmd 阶段更改为部署,因此跳过了 Flex PMD .. :)

当我想运行 Flex PMD 时,我只需将 hudson 构建更改为运行以下

mvn clean install -Dpmd.phase=package 

这里的代码片段

         <plugin>
            <groupId>com.adobe.ac</groupId> 
            <artifactId>flex-pmd-maven-plugin</artifactId> 
            <version>${flex-pmd.version}</version> 
            <executions>
                <execution>
                    <phase>${pmd.phase}</phase> 
                    <goals>
                        <goal>check</goal> 
                    </goals>
                </execution>
            </executions>
            <configuration>
                <ruleSet>build_rules/Flexpmd.xml</ruleSet> 
                <excludePackage>**/Mocked*.as</excludePackage>
            </configuration>
        </plugin>

我在 pom 中还有以下默认属性,因此 pmd 将为运行正常 mvn clean install 的开发人员默认运行

<properties>
   <pmd.phase>package</pmd.phase>
</properties>
于 2013-03-06T18:22:26.260 回答