0

子pomからMaven 3.0の親プロファイルのプロパティをオーバーライドする方法は?

親 pom からプロファイル プロパティをオーバーライドしたい。私は help:effective-pom -Pjmeter を使用しましたが、子プロパティが取得されていないことがわかり、多くのさまざまな順列を試しても成功しませんでした。親プロパティが子プロパティによってオーバーライドされることを期待しています。

親ポンプロファイル:

<profile>
  <id>jmeter</id>
  <properties combine.self="override">
    <maven.jmeter.phase>verify</maven.jmeter.phase>
    <maven.jmeter.goal>jmeter</maven.jmeter.goal>
    <!-- We use the ${basedir} to avoid NullPointer errors when src/test/jmeter doesn't exist -->
    <!-- when running jmeter test the default to set in the child pom is  ${basedir}/src/test/jmeter  -->
    <maven.jmeter.testFilesDirectory>${basedir}</maven.jmeter.testFilesDirectory>
    <maven.jmeter.jMeterTestFile>**/*.jmx</maven.jmeter.jMeterTestFile>
    <maven.jmeter.excludeJmeterTestFile>NOT_NULL</maven.jmeter.excludeJmeterTestFile>
    <maven.jmeter.testResultsTimestamp>false</maven.jmeter.testResultsTimestamp>
    <maven.jmeter.server>localhost</maven.jmeter.server>
    <maven.jmeter.port>8080</maven.jmeter.port>
  </properties>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>com.lazerycode.jmeter</groupId>
          <artifactId>jmeter-maven-plugin</artifactId>
          <version>${jmeter.version}</version>
          <executions>
            <execution>
              <id>jmeter-tests</id>
              <phase>${maven.jmeter.phase}</phase>
              <goals>
                <goal>${maven.jmeter.goal}</goal>
              </goals>
              <configuration>
                <testFilesDirectory>${maven.jmeter.testFilesDirectory}</testFilesDirectory>
                <testFilesIncluded>
                  <jMeterTestFile>${maven.jmeter.jMeterTestFile}</jMeterTestFile>
                </testFilesIncluded>
                <testFilesExcluded>
                  <excludeJmeterTestFile>${maven.jmeter.excludeJmeterTestFile}</excludeJmeterTestFile>
                </testFilesExcluded>
                <testResultsTimestamp>${maven.jmeter.testResultsTimestamp}</testResultsTimestamp>
                <propertiesUser>
                  <!-- server and port must be defined (and used) in the JMeter jmx file as User Defined Variables
                        ${__P(server,localhost)}
                        ${__P(port,80)}
                       See http://jmeter.apache.org/usermanual/component_reference.html#User_Defined_Variables
                           http://jmeter.apache.org/usermanual/test_plan.html#using_variables
                           http://jmeter.apache.org/usermanual/functions.html#__P
                           http://jmeter.apache.org/usermanual/best-practices.html#parameterising_tests
                  -->
                  <server>${maven.jmeter.server}</server>
                  <port>${maven.jmeter.port}</port>
                </propertiesUser>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</profile>

そして、子ポンで:

<profile>
  <id>jmeter</id>
  <activation><activeByDefault>false</activeByDefault></activation>
  <properties>
    <maven.jmeter.testFilesDirectory>${project.basedir}/src/test/jmeter</maven.jmeter.testFilesDirectory>
    <!-- csv based JMeter tests result in one graph in Jenkins, we want a graph per test -->
    <maven.jmeter.excludeJmeterTestFile>**/KRAD.jmx</maven.jmeter.excludeJmeterTestFile>
  </properties>
</profile>
4

1 に答える 1

3

プロパティがそのようにオーバーライドされているかどうかはわかりません。<pluginManagement>いずれにせよ、プラグインはそのままでは実行されませ<plugins><build>。プラグインを親で実行したくない場合は、<plugins>実行したい子のタグを次の ように定義するだけです。

<profile>
  <id>jmeter</id>
  <activation><activeByDefault>false</activeByDefault></activation>
  <build>
    <plugins>
      <plugin>
        <groupId>com.lazerycode.jmeter</groupId>
        <artifactId>jmeter-maven-plugin</artifactId>
        <configuration>
          <testFilesDirectory>${maven.jmeter.jMeterTestFile}</testFilesDirectory>
          <!-- csv based JMeter tests result in one graph in Jenkins, we want a graph per test -->
          <testFilesExcluded>
            <excludeJmeterTestFile>${maven.jmeter.excludeJmeterTestFile}</excludeJmeterTestFile>
          </testFilesExcluded>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

お役に立てれば。

于 2013-08-19T21:12:19.057 に答える