1

对于任何 maven 插件,是否有一种通用的方法来执行此操作 - 基于用户偏好运行/基于属性文件禁用它?

使用 com.mysema.querydsl 有一个正常工作的 maven 插件,现在要更改它,因此它仅在提供特定标志/命令行选项时运行。

<plugin>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-maven-plugin</artifactId>
            <version>${querydsl-maven-plugin.version}</version>
            //executions
            <configuration>
                <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>

                <jdbcUrl>jdbc:mysql://myurlk:port/db</jdbcUrl>
                <jdbcUser>id1</jdbcUser>
                <jdbcPassword>ccc</jdbcPassword>
                <packageName>com.sample</packageName>
                <targetFolder>${project.basedir}/src/main/java</targetFolder>
                <schemaPattern>APP</schemaPattern>
                    //goal prefix here?
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>${mysql.driver.version}</version>
                </dependency>
            </dependencies>
        </plugin>

尝试添加

            <executions>
                <execution>
                 <id>execution1</id>
                  <phase>test1</phase>
                    <goals>
                        <goal>export</goal>
                    </goals>
                </execution>
            </executions>

    and a goal prefix       
                                 <goalPrefix>mysema1</goalPrefix>

但不工作。想要一种方法,以便在我们执行默认操作时不会运行此插件

mvn 干净安装

但是需要添加另一个标志以使其运行?使用 Apache Maven 3.0.4

4

2 回答 2

3

您是否尝试将插件执行放入 Maven 配置文件中?有几个触发器可以为构建启用配置文件(例如操作系统、Java 版本、属性值或命令行上的配置文件 ID 本身)。有关详细信息,请参阅http://maven.apache.org/guides/introduction/introduction-to-profiles.html 。

于 2013-08-06T12:25:56.360 回答
1

定义配置文件,将插件定义添加到配置文件中并为配置文件添加属性触发器,如下所示:

<project>
  ...

  <profiles>
    <profile>
      <id>profile-id</id>
        <activation>
          <property>
            <name>myProperty</name>
          </property>
        </activation>
      <build>
        <plugins>
          <plugin>
            ...
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>

当您使用mvn clean install插件构建项目时,不会执行,当您使用插件构建项目时,mvn clean install -DmyPropertymvn clean install -Pprofile-id的插件将被执行。在第二种情况下,配置文件的属性激活触发器已过时。

于 2013-08-11T14:24:41.453 回答