を、Mavenはブール論理が実装されていません。したがって、プラグインに渡すプロパティを無効にしたい場合は、それを自分で行う必要があります。それは少し不器用ですが、Mavenのプロパティとして、それに定義されてBeanShell scriptとエクスポート変数書くことができますbuild-helper-maven-plugin:bsh-property
目標、使用することができます:あなたはプロパティをオーバーライドすることはできません
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>negate-prop</id>
<phase>initialize</phase>
<goals>
<goal>bsh-property</goal>
</goals>
<configuration>
<source>dontDoSomething = !${doSomething};</source>
<properties>
<property>dontDoSomething</property>
</properties>
</configuration>
</execution>
</executions>
</plugin>
を、しかし、あなたが定義することができます否定の結果を含む新しいもの。上記の例では、それはdontDoSomething
です。これはinitialize
段階で実行され、残りのプラグインでパラメータとして使用することができます。標準は${dontDoSomething}
です。
doSomething
が存在しない場合、これをデフォルト値のdontDoSomething
に拡張することができます。
<source>
value = project.getProperties().getProperty("doSomething");
dontDoSomething = value == null ? false : !Boolean.parseBoolean(value);
</source>
BeanShellは、Javaに非常によく似ていて、既存のJavaメソッドを使用できるスクリプト言語です。上記では、プロパティ"doSomething"
がプロジェクトのプロパティから取得されます(project
は評価時にプラグインによって現在のMavenプロジェクトに注入されます)。定義されていない場合は、false
を返します。そうでない場合は、値を無効にします。
doSomething
は、特にシステムプロパティである場合、それはまた、(AB)に可能とすることができるプロフィール活性化機能を使用し、2つのプロファイルを有する:一つの特性によって活性化第二true
であるとfalse
に別の設定、および逆をやっプロフィール:
<profiles>
<profile>
<id>pro-1</id>
<activation>
<property>
<name>doSomething</name>
<value>!false</value>
</property>
</activation>
<properties>
<dontDoSomething>false</dontDoSomething>
</properties>
</profile>
<profile>
<id>pro-2</id>
<activation>
<property>
<name>doSomething</name>
<value>false</value>
</property>
</activation>
<properties>
<dontDoSomething>true</dontDoSomething>
</properties>
</profile>
</profiles>
doSomething
は、例えば<properties>
タグに設定されたMavenのプロパティである場合、これは動作しません。 mvn -DdoSomething=true|false
のシステムプロパティとして渡す必要があります。対応するプロファイルは、システムプロパティの値に応じてアクティブ化され、dontDoSomething
プロパティを逆に定義します。プロパティが定義されていない場合はがアクティブになり、dontDoSomething
をデフォルト値のfalse
に設定します。しかし、このすべてはかなり醜いです...
あなたdoSomethingをスキップするために使用している現在のコマンドを共有することができます。 – nullpointer
@nullpointerカスタムプラグインです。 https:// githubの '$ {download.cmake} 'を参照してください。com/cmake-maven-project/cmake-maven-projectにあります。ユーザーがこのプロパティをfalseに設定した場合、ダウンロードをスキップしますが、プラグインは実際にはこの値の否定を入力として受け取ります( ' 'パラメータ)。 –
Gili
現在のpom.xmlのプラグインコンテキストと現在実行中の実行方法について、詳細に質問を追加してください。私は提供されたリンクに '$ {download.cmake} 'が表示されません。 – nullpointer