我试图获得一个最小的空jenkins插件来编译并在码头jenkins中显示。
我创建了一个新的Java项目并将其变成了一个maven项目。
Right Click -> Configure -> Into Maven
。
我的问题源于家长。
Group Id: org.jenkins-ci.plugins
Artifact Id: plugin
Version: 3.9
当我执行目标RunAs -> Maven -> Install
时,我收到了错误消息。
错误字符串包含:
maven-enforcer-plugin:3.0.0-M1:enforce failed: Unknown JDK version given. Should be something like "1.7"
我在机器中安装了多个Java版本,所以我应该有一些可供选择。我试图在Project Propererties中设置一个不同的JRE依赖,但没有效果。
还有一个相关的输出:
[INFO] --- maven-enforcer-plugin:3.0.0-M1:display-info (display-info) @ ManualTestingMapper ---
[INFO] Maven Version: 3.3.9
[INFO] JDK Version: 1.8.0_162 normalized as: 1.8.0-162
[INFO] OS Info: Arch: amd64 Family: windows Name: windows 7 Version: 6.1
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (display-info) @ ManualTestingMapper ---
我的Windows环境有JAVA_HOME=c:\Program Files (x86)\Java\jre8u152
,PATH也指向了这个方向。
如何在日食中解决这个问题? 我需要在每个项目级别更改JDK版本。 我找不到任何有用的谷歌 - 这些都是冷漠的我。
编辑: 我应该提一下,将Project Facets更改为Java 1.7会给出执行器输出:
[INFO] --- maven-enforcer-plugin:3.0.0-M1:display-info (display-info) @ ManualTestingMapper ---
[INFO] Maven Version: 3.3.9
[INFO] JDK Version: 1.7.0_80 normalized as: 1.7.0-80
[INFO] OS Info: Arch: amd64 Family: windows Name: windows 7 Version: 6.1
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (display-info) @ ManualTestingMapper ---
关于需要JDK 1.7的错误仍然是相同的。
编辑: 这是我的POM,我将ID更新为中性。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SOGrouID</groupId>
<artifactId>SOArtifactID</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SOName</name>
<description>SOName is a Stackoverflow Example.</description>
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.9</version>
</parent>
</project>
父POM包含
<requireJavaVersion>
<version>[1.8.0,)</version>
</requireJavaVersion>
提出了比答案更多的问题。 可以检查整个父POM on github.
编辑:运行maven目标Install -X提供异常类型:
java.lang.IllegalArgumentException: Unknown JDK version given. Should be something like "1.7"
我猜“1.7”可以作为格式示例。如果是这样,那么插件可能会出现一个难以理解的格式字符串?
答案 0 :(得分:2)
感谢@Kai将我指向父母POM。
有许多属性标有you-must-override
。
其中之一是
<java.level>you-must-override-the-java.level-property</java.level>
IllegalArgumentException
来自给定的字符串。
覆盖pom中的该属性可以解决问题。
<properties>
<java.level>8</java.level>
</properties>
答案 1 :(得分:1)
问题与已安装的Java版本无关。打开pom.xml
并查找maven-enforcer-plugin。我想这里的配置是错误的,应该有类似的东西:
<requireJavaVersion>
<version>1.7</version>
</requireJavaVersion>