配置文件"compile-java8-release-flag"中的 JDK 版本无效:无界范围:[9,对于项目 org.jboss:jboss-parent



我们正在将一个java应用程序从JBoss EAP 6迁移到JBoss EAP7.3。我们将jboss BOM文件更新为Jakarta EE 8版本:

<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-eap-jakartaee8-with-tools</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>

在构建我们的最终EAR文件时,maven构建失败,并出现以下错误:

Unable to initialize POM pom.xml: Invalid JDK version in profile 'compile-java8-release-flag': Unbounded range: [9, for project org.jboss:jboss-parent
at org.apache.maven.artifact.ant.Pom.initialiseMavenProject(Pom.java:217)
at org.apache.maven.artifact.ant.Pom.doExecute(Pom.java:418)
at org.apache.maven.artifact.ant.AbstractArtifactTask.execute(AbstractArtifactTask.java:751)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: org.apache.maven.project.ProjectBuildingException: Invalid JDK version in profile 'compile-java8-release-flag': Unbounded range: [9, for project org.jboss:jboss-parent
at org.apache.maven.project.DefaultMavenProjectBuilder.injectActiveProfiles(DefaultMavenProjectBuilder.java:1502)
at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1194)
at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1407)
at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1407)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:823)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:255)
at org.apache.maven.project.DefaultMavenProjectBuilder.mergeManagedDependencies(DefaultMavenProjectBuilder.java:1456)
at org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder.java:999)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:880)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:508)
at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)
at org.apache.maven.artifact.ant.Pom.initialiseMavenProject(Pom.java:211)
... 18 more
Caused by: org.apache.maven.profiles.activation.ProfileActivationException: Invalid JDK version in profile 'compile-java8-release-flag': Unbounded range: [9,
at org.apache.maven.profiles.activation.JdkPrefixProfileActivator.isActive(JdkPrefixProfileActivator.java:57)
at org.apache.maven.profiles.DefaultProfileManager.isActive(DefaultProfileManager.java:273)
at org.apache.maven.profiles.DefaultProfileManager.getActiveProfiles(DefaultProfileManager.java:209)
at org.apache.maven.project.DefaultMavenProjectBuilder.injectActiveProfiles(DefaultMavenProjectBuilder.java:1496)
... 29 more

我们发现,我们包含的bom使用org.joss.jboss-parent作为父级,它包含以下配置文件:

<profile>
<id>compile-java8-release-flag</id>
<activation>
<file>
<exists>${basedir}/build-release-8</exists>
</file>
<jdk>[9,</jdk>
</activation>
<!-- ... -->
</profile>

在jdk标记中,版本末尾缺少一个(字符。有一个更新版本的jboss-eap-jakartee8-with-tools,它仍然使用jboss父级:35,因此它会产生同样的错误。

没有关于这个话题的相关讨论。此外,还有一个版本为36的jboss父级修复了这个问题,但它没有在任何bom中使用。在官方的redhat maven存储库增量更新和eap 7.3更新中都没有提到这个问题。

除了在本地maven存储库中手动编辑jboss父级之外,如何解决此问题?有官方的解决办法吗?

谢谢。

TL;DR解释蚂蚁中被遗忘的插件给我们开了个玩笑。我们需要一起更新插件或蚂蚁。

更长的解释:所以我们正在迁移的项目是旧的。它同时使用Ant 1.9.1和Maven 3.0.5。事实证明,在build.xml中,Ant 1.9.1曾使用Maven Ant Task插件,该插件在其插件jar中附带了自己的Maven 2.2.1。在迁移之前,构建自动化工具之间的一切都很正常。迁移后,在新的依赖项中定义了一个版本范围,这在Maven3.x中很好,但Maven2.x已经失效。我们错误地发现Maven3.x导致了问题,但没有。

您应该从Maven Ant Tasks迁移到Maven Artifact Resolver Ant Tasks。这应该解决";开放版本";问题,并且它也没有将maven捆绑在jar中。

它有一个代理存储库的错误。。让我们从一个问题进入另一个问题,就像这里描述的那样:/

相关内容

  • 没有找到相关文章

最新更新