1

コマンドラインでMaven Enforcer pluginを実行します。Maven Enforcer Plugin:コマンドラインでルールを指定してください

私が試した:

mvn enforcer:enforce -Drules=[requireReleaseDeps] 
mvn enforcer:enforce -Drules=requireReleaseDeps 

私はいつもこのエラーを取得しています:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (default-cli) on project lkww-util-app-wurm-admin-rs-api: The parameters 'rules' for goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce are missing or invalid -> [He 
lp 1] 

私はrulesパラメータを指定する必要はどうすればよいですか?

答えて

0

エンフォーサプラグインでは、コマンドラインパラメータでルールを選択/使用することはできません。

これにはプラグインに対してopen issueがあります。そのために投票することができます。

一方、選択したルールを少数の選択肢に分類すると、プロファイルを作成してルールをプロファイルに関連付けることができ、プロファイルを指定して選択したルールのサブセットに対してビルドを実行できます。以下の例では、異なる執行規則をそれぞれ有する2つのプロファイル、があります。実行時に執行規則を指定するためにあなたの要件は、いくつかの缶詰の構成によって満足できるのであればもちろん

<profiles> 
    <profile> 
     <id>EnforceBannedPlugins</id> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-enforcer-plugin</artifactId> 
       <version>3.0.0</version> 
       <executions> 
        <execution> 
         <id>enforce-banned-plugins</id> 
         <goals> 
          <goal>enforce</goal> 
         </goals> 
         <configuration> 
          <rules> 
           <bannedPlugins> 
            ... 
           </bannedPlugins> 
          </rules> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </profile> 
    <profile> 
     <id>EnforceMavenVersion</id> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-enforcer-plugin</artifactId> 
       <version>3.0.0</version> 
       <executions> 
        <execution> 
         <id>enforce-maven-version</id> 
         <goals> 
          <goal>enforce</goal> 
         </goals> 
         <configuration> 
          <rules> 
           <requireMavenVersion> 
            ... 
           </requireMavenVersion> 
          </rules> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </profile> 
</profiles> 

は、これが唯一のランナーです。ただし、要求がのエンフォーサルールをサポートする必要がある場合、プラグインはそれをサポートしていないため不運です。

1

よりもむしろプロファイルを使用して別の回答で推奨されているように、また、あなたのPOMのメインセクションで、あなたの<executions>を事前に設定してから、コマンドラインからそれらを呼び出すために<execution><id>を使用することができます(Guide to Configuring Plug-insについてを参照してくださいこの構文の詳細):デフォルトによってenforce goalのいずれかの<execution>validate相に目標を結合したよう

mvn enforcer:[email protected] 

、しかし、my-execution-id実行は、通常のmvn clean install上で実行されます。それを希望されない場合は、<skip>true</true>で実行を設定し、コマンドラインでこれをオーバーライドします。これはPOMの要部を越えmaven-enforcer-plugin設定を広げるよりも明確であると<profiles>は個人の好みの問題です

mvn enforcer:[email protected] -Denforcer.skip=false 

かどうか。

関連する問題