5

複数のファイルの存在に基づいてプロファイルを有効にしたいと考えています。my.marker次の例では、ファイルとファイルの両方が存在する場合にプロファイルを有効にしますanother.marker

    <activation>
        <file>
            <exists>${basedir}/my.marker</exists>
            <exists>${basedir}/another.marker</exists>
        </file>
    </activation>

スキーマに対して有効ではないため、機能しません。コマンド ライン プロパティを使用せずにそのようなことを行う方法はありますか?

4

3 に答える 3

-1

問題の解決策ではありませんが、 maven enforcer pluginを使用して 2 つのファイルが存在する場合にのみ、プロファイルが正常に実行されるようにすることができます。

たとえば、以下のスニペットは、との両方が存在しない限り、プロファイルrequiresTwoFiles(例: ) を使用して Maven ゴールを実行すると失敗します。mvn -P requiresTwoFiles compilesrc/main/javasrc/test/java

...
<profile>
    <id>requiresTwoFiles</id>           
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.1</version>
                <executions>
                      <execution>
                        <id>enforce-files-exist</id>
                        <goals>
                          <goal>enforce</goal>
                        </goals>
                        <configuration>
                          <rules>
                            <requireFilesExist>
                              <files>
                                  <file>${basedir}/src/main/java</file>
                                  <file>${basedir}/src/test/java</file>
                              </files>
                            </requireFilesExist>
                          </rules>                              
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile>
...
于 2012-06-21T12:31:10.877 に答える
-1

残念ながら、今のところこれを行うことはできません。複数のアクティベーション条件を使用してケースを解決できるチケットがありますが、まだ解決されていません。

編集:Mavenに問題があったため、それを行うことができませんでした。ただし、バージョン 3.2.2 以降では、複数のアクティベーション条件を使用して動作するはずです。

これを指摘してくれたNicholas Daleyに感謝します。

于 2012-06-21T09:00:48.140 に答える