我们正在将一个java应用程序从jboss eap 6迁移到jboss eap 7.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.jboss.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-jakartaee8-with-tools有一个更新的版本,它仍然使用jboss-parent:35 so 它产生了同样的错误。
关于这个主题没有相关的讨论。还有一个版本为36的jboss父版本修复了这个问题,但是它没有在任何bom中使用。官方的redhat maven repository增量更新和eap 7.3更新中都没有提到这个问题。
除了在本地maven存储库中手动编辑jboss父级之外,如何解决这个问题?有官方的解决办法吗?
谢谢您。
1条答案
按热度按时间iyfamqjs1#
热释光;蚂蚁博士跟我们开了个玩笑。我们需要一起更新插件或ant。
更详细的解释:所以我们迁移的项目是旧的。它同时使用Ant1.9.1和maven 3.0.5。事实证明,在build.xml ant 1.9.1中有一次使用了maven ant任务插件,它在插件jar中附带了自己的maven 2.2.1。在迁移之前,构建自动化工具之间的一切都正常工作。在迁移之后,在新的依赖项中定义了一个版本范围,这对于Maven3.x来说还可以,但是Maven2.x已经死了。我们错误地认为maven3.x导致了这个问题,但是没有。