以下依赖项是我的pom.xml文件的一部分,通过在我的profiles.xml中选择适当的数据库配置文件,这些值可以正确替换。以下定义适用于Maven 2.2.1,并在迁移到Maven 3.0.2后停止工作。如何解决这个问题?
<dependency>
<groupId>${db.groupId}</groupId>
<artifactId>${db.artifactId}</artifactId>
<version>${db.driver.version}</version>
<scope>test</scope>
</dependency>
<profile>
<id>h2</id>
<properties>
<db.groupId>${db.h2.groupId}</db.groupId>
<db.artifactId>${db.h2.artifactId}</db.artifactId>
<db.type>h2</db.type> <db.driver.version>${db.h2.driver.version</db.driver.version>
<db.driver>${db.h2.driver}</db.driver>
</properties>
</profile>
ERROR
[DEBUG] Looking up lifecyle mappings for packaging pom from ClassRealm[plex
us.core, parent: null]
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encou
ntered while processing the POMs:
[WARNING] The expression ${pom.url} is deprecated. Please use ${project.url
} instead. @
[ERROR] 'dependencyManagement.dependencies.dependency.artifactId' for ${db.
groupId}:${db.artifactId}:jar with value '${db.artifactId}' does not match
a valid id pattern. @ line 2488, column 29
[ERROR] 'dependencyManagement.dependencies.dependency.groupId' for ${db.gro
upId}:${db.artifactId}:jar with value '${db.groupId}' does not match a vali
d id pattern. @ line 2487, column 26
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProj
ectBuilder.java:325)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:
632)
at org.apache.maven.DefaultMaven.getProjectsForMavenReactor(Default
Maven.java:581)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:233)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor
Impl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
AccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launche
r.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCo
de(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.
java:352)
答案 0 :(得分:2)
来自Maven 3.x Compatibility notes,
The support for profiles outside of the POM or the settings.xml has been
removed in version 3.x and users that previously used this feature are advised
to move the affected profiles into their settings.xml.
这解释了您的问题并为其提出了解决方案。