是否有通用方法为任何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 clean install
但是需要添加另一个标志才能让它运行? 使用Apache Maven 3.0.4
答案 0 :(得分:3)
您是否尝试将插件执行放入Maven个人资料中?有几个触发器可以为构建启用配置文件(例如,OS,Java版本,属性值或命令行上的配置文件ID本身)。 有关详细信息,请参阅http://maven.apache.org/guides/introduction/introduction-to-profiles.html。
答案 1 :(得分: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
构建yout项目时,插件将不会被执行,当您使用mvn clean install -DmyProperty
或mvn clean install -Pprofile-id
构建项目时,您的插件将被执行。在第二种情况下,配置文件的属性激活触发器已过时。