2011-01-20 1 views
1

다음 종속성은 pom.xml 파일의 일부이며 내 profiles.xml에서 적절한 데이터베이스 프로파일을 선택하면이 값이 올바르게 대체됩니다. 다음 정의는 Maven 2.2.1에서 작동 중이며 Maven 3.0.2 로의 마이그레이션 후 작업을 중단했습니다. 이 문제를 어떻게 해결합니까? 이 문제를 설명뿐만 아니라 그것에 대한 해결책을 제시종속성 태그 내의 다양한 매개 변수의 토큰 화가 초기화 중에 실패합니다.

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. 

<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 Maven 3.x Compatibility notes에서

[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

프로필로 maven을 실행 중입니까? 그렇다면 위의 내용을 편집하고 관련 프로필 스 니펫을 게시 할 수 있습니까? – Raghuram

+0

프로필에 대한 정보를 추가했습니다. 참고 :이 pom.xml은 2.2.1에서 변경하지 않고 실행됩니다. – user339108

+0

"h2"관련 속성은 * db.h2.groupId *, * db.h2.artifactId *와 같이 정의 된 위치는 어디입니까? – Raghuram

답변