Clean install some modules with maven results in an error: Error building POM (may not be this project's POM)

匿名 (未验证) 提交于 2019-12-03 01:45:01

问题:

At the path C:\PMX\checkout\components\promomax-all_webapps_component I have this this file: pom-aggregator-packaging.xml

The file pom-aggregator-packaging.xml contains some modules checked out with turtoiseCVS.

When I go in cmd to the path C:\PMX\checkout\components\promomax-all_webapps_component and type mvn -f pom-aggregator-packaging.xml clean install the returned error is:

+ Error stacktraces are turned on. [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [ERROR] FATAL ERROR [INFO] ------------------------------------------------------------------------ [INFO] Error building POM (may not be this project's POM).   Project ID: unknown  Reason: Could not find the model file 'C:\PMX\checkout\bundles\promomax-spring_aspects'. for project unknown   [INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.reactor.MavenExecutionException: Could not find the model file 'C:\PMX\checkout\bundles\promomax-spring_aspects'. for project unknown     at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:404)     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:272)     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)     at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)     at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:606)     at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)     at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.project.ProjectBuildingException: Could not find the model file 'C:\PMX\checkout\bundles\promomax-spring_aspects'. for project unknown     at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1575)     at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:506)     at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)     at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:604)     at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:487)     at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560)     at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:391)     ... 12 more Caused by: java.io.FileNotFoundException: C:\PMX\checkout\bundles\promomax-spring_aspects (The system cannot find the file specified)     at java.io.FileInputStream.open(Native Method)     at java.io.FileInputStream.<init>(FileInputStream.java:146)     at hidden.org.codehaus.plexus.util.xml.XmlReader.<init>(XmlReader.java:124)     at hidden.org.codehaus.plexus.util.xml.XmlStreamReader.<init>(XmlStreamReader.java:67)     at hidden.org.codehaus.plexus.util.ReaderFactory.newXmlReader(ReaderFactory.java:118)     at org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1570)     ... 18 more [INFO] ------------------------------------------------------------------------ [INFO] Total time: < 1 second [INFO] Finished at: Fri Oct 02 15:46:09 EEST 2015 [INFO] Final Memory: 6M/243M [INFO] ------------------------------------------------------------------------ 

The content of pom-aggregator-packaging.xml is:

<project>   <modelVersion>4.0.0</modelVersion>   <groupId>com.company_name.app_name</groupId>   <artifactId>monitoring-pom-aggregator</artifactId>   <version>1.0.0</version>   <packaging>pom</packaging>   <name>NameOfTheApp Engine Server Component Pom Aggregator</name>   <modules>     ...     <module>../../bundles/promomax-spring_aspects</module>      ...    </modules> </project> 

Could you, please, help me to fix this error?

If in pom-aggregator-packaging.xml I change the

<module>../../bundles/promomax-spring_aspects</module> giving the absolute path:

<module>C:/PMX/checkout/components/promomax-all_webapps_component/bundles/promomax-spring_aspects</module> 

and then again I run the command mvn -f pom-aggregator-packaging.xml clean install, the new error is:

[ERROR] FATAL ERROR [INFO] ------------------------------------------------------------------------ [INFO] Unable to canonicalize file name C:\PMX\checkout\components\promomax-all_webapps_component\C:\PMX\checkout\components\promomax-all_webapps_component\bundles\promomax-spring_aspects The filename, directory name, or volume label syntax is incorrect [INFO] ------------------------------------------------------------------------ 

回答1:

Pretty sure that if you replace

<module>../../bundles/promomax-spring_aspects</module>  

with

<module>../../components/promomax-all_webapps_component/bundles/promomax-spring_aspects</module>  

it will work.

But your setup does not seem clean at all to me. Referring to modules is usually done from a parent POM which should reside on a higher level (file system) than the child poms.

So rather something like

  • myproject
    • my module1
      • pom.xml
    • my module2
      • pom.xml
    • pom.xml (parent)

You should not depend on relative paths unless you're in a parent/child context.

Further reading: https://stackoverflow.com/a/10453063/190596



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!