是否可以在POM中指定特定的JDK来运行给定的Maven-Plugin



我被要求使用特定的JDK 1.8签名,而项目为1.7。假设它是可行的?我有一个默认的JDK 1.8

应用程序为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>

由于他们需要签名罐子,建议他们使用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 这是可行的吗?如何?

非常感谢

francesco

仅配置JDK8。

maven-compiler-plugin将确保您编译Java 1.7兼容代码。

另一方面,maven-jarsigner-plugin将使用JDK8透明地签名。

为了清楚jarsigner是JDK实用程序,不可能以较旧的(例如1.7(方式运行JDK 1.8的jarsigner

  1. 确保所需的JDK 8是编译类Path中唯一的JDK。
  2. 在POM中,设置向后源和目标版本信息(您的示例显示您已经在执行此操作(。
  3. 将Maven-Jarsigner-Plugin添加到POM中。
  4. 配置所需的JDK 8罐签名。

最新更新