是否可以在POM中指定一个特定的JDK来运行给定的maven-plugin?

时间:2017-04-26 09:07:49

标签: java maven jenkins

我被要求提供使用特定JDK 1.8签署jar,而项目符合1.7。 假设可行,我怎样才能做到这一点? 我有一个默认的JDK 1.8,jenkins作业将执行maven作业

应用程序是编码,因此在其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 那可行吗? 怎么样?

非常感谢

弗朗西斯

2 个答案:

答案 0 :(得分:0)

只为此配置JDK8。

maven-compiler-plugin将确保您编译符合Java 1.7的代码。

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

为了清楚jarsigner是一个JDK实用程序,以较旧的(比如1.7)版本方式运行JDK 1.8的jarsigner是不可能的。

答案 1 :(得分:0)

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