7

jarにタイムスタンプを追加すると、Mavenビルドに通常の約4倍の時間がかかります。リリースビルドにはタイムスタンプが必要ですが、スナップショットビルドには必要ありません。リリースバージョンの場合(つまり、SNAPSHOTがプロジェクトバージョンに表示されない場合)にのみTSA引数を追加するようにPOMファイルを構成するにはどうすればよいですか。

以下は、jarsignerプラグインのPOMエントリです。下部に追加された引数に注意してください。プロジェクトバージョンにSNAPSHOTが表示されている場合は、これらを追加しないでください。

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jarsigner-plugin</artifactId>
          <version>1.2</version>
          <executions>
            <execution>
              <id>sign webcontent jars</id>
              <phase>prepare-package</phase>
              <goals>
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <archiveDirectory>${project.build.directory}/projectname-webcontent/applets</archiveDirectory>
            <includes>
              <include>*.jar</include>
            </includes>
            <keystore>Keystore</keystore>
            <alias>alias</alias>
            <storepass>pass</storepass>
            <arguments>
              <argument>-tsa</argument>
              <argument>https://timestamp.geotrust.com/tsa</argument>
            </arguments>
          </configuration>
        </plugin>
4

1 に答える 1

3

リリースに maven リリース プラグインを使用していると仮定すると、それがアクティブ化するリリース プロファイルをピギーバックすることでこれを実現できます。

リリースを行うためにリリース プラグインを使用する場合、または使用しない場合は、独自のカスタム プロファイルを使用してこれを行うこともできます。

pom には、次のものが含まれます。

<profiles>
    <profile>
        <id>release-profile</id>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jarsigner-plugin</artifactId>
            ...
            <!-- Put your configuration with the TSA here -->
        </plugin>
    </profile>
</profiles>

ここで、jarsigner のビルド/プラグイン構成の通常の部分で TSA 引数を省略します。何らかの理由で TSA にスナップショットが必要な場合は、次を使用して手動でリリース プロファイルを有効にすることができます。

mvn -Prelease-profile install
于 2013-11-14T17:05:24.247 に答える