猿问

无法使用 exec-maven-plugin 执行 maven 多模块项目

我在这里有一个多模块 Maven 项目。


父项目有 3 个通用模块,带参数,不带参数。


带参数和不带参数的模块相互独立,都依赖于公共模块。


在没有参数的模块中,我添加了对像这样的通用模块的依赖。


下面是项目的结构。


.

├── pom.xml

├── common

│   ├── pom.xml

│   ├─ src

│      ├── main

│         ├─ java

│            ├── ParanamerUtil.java

│            ├── PersonV03.java

│            └── TestCaseClasses.java

├── with-paranamer

│   ├── pom.xml

│   ├──src

│      ├── main

│         ├── java

│            └── ParanamerExample.java

|

└── without-paranamer

    ├── pom.xml

    ├─ src

       ├── main

          ├── java

              └── ParametersExample.java

我想ParametersExample 使用 exec-maven-plugin 在没有参数的模块中执行类。所以我在这里添加了 exec-maven-plugin 在父 pom.xml 中的 pluginManagement 下。

在没有-paranamer模块我已经加入插件像这样。


我已按照此处的 stackoverflow 帖子中提到的上述说明进行操作。


当我运行mvn verify命令成功时。


但是当我尝试运行命令时,mvn  exec:java  -Dexec.mainClass=ParametersExample -pl without-paranamer我遇到了以下错误。


WARNING] The POM for paranamer-maven-demo:common:jar:1.0-SNAPSHOT is missing, no dependency information available

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 0.189 s

[INFO] Finished at: 2018-09-07T17:23:07-04:00

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal on project without-paranamer: Could not resolve dependencies for project paranamer-maven-demo:without-paranamer:jar:1.0-SNAPSHOT: Could not find artifact paranamer-maven-demo:common:jar:1.0-SNAPSHOT -> [Help 1]

如何使用 exec-maven-plugin 使我的程序成功运行。


肥皂起泡泡
浏览 284回答 1
1回答

慕运维8079593

without-paranamer模块依赖于paranamer-maven-demo.common.1.0-SNAPSHOT,但它在哪里可以找到它?最明显的答案:在本地存储库中。但它不在那里,除非你安装它(另外,你必须安装父项目的 pom)。mvn -N clean install- 安装父 pom。(-N代表non recursive,这意味着目标将只为父项目执行,而不是为子模块执行)。mvn -pl common &nbsp;clean install- 安装common模块。现在,调用exec:java将成功(但没有打印任何输出,因为<skip>true</skip>在插件管理配置中)
随时随地看视频慕课网APP

相关分类

Java
我要回答