问题描述
从下图可以看出,我的项目结构是一个父工程与多个子工程。
其中,crm-web子工程依赖于crm-service子工程,crm-service子工程又依赖于crm-dao子工程。当我通过crm-web子工程的pom.xml文件中配置的tomcat7插件来运行crm-web子工程时,给我报错了,eclipse控制台打印出了如下错误提示信息。
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< com.meimeixia:crm-web >------------------------
[INFO] Building crm-web 0.0.1-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ crm-web >>>
[WARNING] The POM for com.meimeixia:crm-service:jar:0.0.1-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.352 s
[INFO] Finished at: 2019-12-27T09:36:17+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project crm-web: Could not resolve dependencies for project com.meimeixia:crm-web:war:0.0.1-SNAPSHOT: Could not find artifact com.meimeixia:crm-service:jar:0.0.1-SNAPSHOT -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
出错原因
为什么会报上面这样的错误呢?最后发现原来是自己没有首先对父工程进行install。
解决办法
解决这个问题就变得很简单了,在父工程创建完成后对父工程进行install,将父工程发布到本地仓库,以方便子工程继承。
结论:在父工程下有的子工程在首次运行前应该先对父工程进行install。