代码之家  ›  专栏  ›  技术社区  ›  emptyset

Simple Maven Mojo插件:布尔参数

  •  1
  • emptyset  · 技术社区  · 14 年前

    这应该很简单-我想我只是忽略了一些事情。我有一个简单的魔力:

    package com.company.product.plugins;
    
    import org.apache.maven.plugin.AbstractMojo;
    import org.apache.maven.plugin.MojoExecutionException;
    
    /**
     * @goal diff
     */
    public class CCDiffMojo extends AbstractMojo {
    
        /**
         * @parameter expression="${ccdiff.run}" default-value="true"
         */
        private boolean run;
    
        public void execute() throws MojoExecutionException {
            if (run) {
                getLog().info("Executing...");
                // TODO: Execute.
            } else {
                getLog().info("Skipping.");
            }
        }
    }
    

    以及pom.xml内容:

    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.company.product.plugins</groupId>
        <artifactId>ccdiff</artifactId>
        <packaging>maven-plugin</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>Content Catalog Diff</name>
        <dependencies>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>2.0</version>
            </dependency>
        </dependencies>
    </project>
    

    这一切都是从 Maven plugin development guide .

    所以,看来我可以做到:

    $ mvn com.company.product.plugins:ccdiff:diff
    

    这是为了执行我将要在其中为这个定制工具(它有点像XML diff)绘制逻辑的分支。布尔参数是一个标志,允许某人在执行大型项目的构建时关闭执行。但是,当我尝试:

    $ mvn com.company.product.plugins:ccdiff:diff -Dccdiff.run=false
    

    它仍然显示“正在执行…”消息,这意味着由于某种原因参数未被设置。

    有什么想法吗?我觉得这就是其中的一个“D'Oh!”错误。

    1 回复  |  直到 14 年前
        1
  •  0
  •   crowne    14 年前

    你的目标叫做差异… @goal diff ,请尝试不带“cc”的命令行,如下所示:

    $ mvn com.company.product.plugins:ccdiff:diff -Ddiff.run=false
    

    编辑:取2。

    我按照你的想法创建了这个项目,它对我来说就像你拥有它一样有效。
    我运行的是maven 2.2.1,输出如下:

    C:\java\ws\ccdiff>set MAVEN_OPTS=-DXms_1024M -DXmx=2048M
    [INFO] Scanning for projects...
    [INFO] artifact com.company.product.plugins:ccdiff: checking for updates from central
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Unnamed - com.company.product.plugins:ccdiff:maven-plugin:1.0-SNAPSHOT
    [INFO]    task-segment: [com.company.product.plugins:ccdiff:diff]
    [INFO] ------------------------------------------------------------------------
    [INFO] [ccdiff:diff {execution: default-cli}]
    [INFO] Executing...
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8 seconds
    [INFO] Finished at: Tue Nov 23 16:27:10 CAT 2010
    [INFO] Final Memory: 1M/4M
    [INFO] ------------------------------------------------------------------------
    C:\java\ws\ccdiff>mvn com.company.product.plugins:ccdiff:diff -Dccdiff.run=false
    
    C:\java\ws\ccdiff>set MAVEN_OPTS=-DXms_1024M -DXmx=2048M
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Unnamed - com.company.product.plugins:ccdiff:maven-plugin:1.0-SNAPSHOT
    [INFO]    task-segment: [com.company.product.plugins:ccdiff:diff]
    [INFO] ------------------------------------------------------------------------
    [INFO] [ccdiff:diff {execution: default-cli}]
    [INFO] Skipping.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: < 1 second
    [INFO] Finished at: Tue Nov 23 16:27:20 CAT 2010
    [INFO] Final Memory: 1M/4M
    [INFO] ------------------------------------------------------------------------
    C:\java\ws\ccdiff>