簡體   English   中英

是否可以在POM中指定特定的JDK來運行給定的maven-plugin?

[英]Is it possible to specify in a POM a specific JDK to run a given maven-plugin?

我被要求提供使用特定的JDK 1.8簽名jar的協議,而該項目是1.7兼容的。 假設可行,我如何實現呢? 我有一個默認的JDK 1.8,詹金斯作業將使用它執行Maven作業

應用程序是1.7編碼的,因此在其pom.xml中具有以下配置:

 <plugin>
        <groupId>org.apache.maven.plugins</groupId>           
        <artifactId>maven-compiler-plugin</artifactId>
        <version>.....</version>
        <configuration>
             .....
            <source>1.7</source>
            <target>1.7</target>
            .....
        </configuration>
  </plugin>

因為他們需要簽名jar,並且建議他們使用1.8的jarsigner ,所以我想知道如何強制maven-jarsigner-plugin...。

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-jarsigner-plugin</artifactId>
   <version>...</version>
   <executions>
      <execution>
         <id>sign</id>
         <goals>
            <goal>sign</goal>
         </goals>
      </execution>
   </executions>
   <configuration>
      <keystore>${keystore.file}</keystore>
      <alias>${keystore.alias}</alias>
      <storepass>${keystore.password}</storepass>
      <storetype>${keystore.type}</storetype>
      <sigfile>XXX</sigfile>
   </configuration>
</plugin>

... 使用JDK8可行嗎? 怎么樣?

非常感謝

弗朗切斯科

只需為此配置JDK8。

maven-compiler-plugin將確保您編譯Java 1.7兼容代碼。

另一方面, maven-jarsigner-plugin將使用JDK8透明地簽名罐子。

為了清楚jarsigner是一個JDK實用程序,不可能以較舊的版本(例如1.7)運行JDK 1.8的jarsigner

  1. 確保所需的JDK 8是編譯類路徑中唯一的JDK。
  2. 在POM中,設置向后的源和目標版本信息(您的示例表明您已經在執行此操作)。
  3. 將maven-jarsigner-plugin添加到POM。
  4. 配置所需的JDK 8 jar簽名者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM