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

时间:2018-09-07 21:24:59

标签: java maven maven-3 exec-maven-plugin maven-exec-plugin

我有一个多模块Maven项目here

父项目有3个通用的模块,带有-命名器,没有-命名器。

with-paranamer和no-paranamer模块彼此独立,并且都依赖于公共模块。

在不带参数的模块中,我已对this之类的通用模块添加了依赖性。

下面是项目的结构。

.
├── 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

我想使用exec-maven-plugin在不带参数的模块中执行ParametersExample类。   因此,我在父pom.xml here的pluginManagement下添加了exec-maven-plugin。
在不带参数的模块中,我添加了this之类的插件。

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

当我运行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使程序成功运行。

1 个答案:

答案 0 :(得分:1)

without-paranamer模块依赖于paranamer-maven-demo.common.1.0-SNAPSHOT,但是在哪里可以找到它呢?最明显的答案:在本地存储库中。但是它不存在,除非您安装它(此外,还必须安装父项目的pom)。

mvn -N clean install-安装父pom。(-N代表non recursive,这意味着目标将仅针对父项目而不是子模块执行)。

mvn -pl common clean install-安装common模块。

现在,调用exec:java将成功(但由于插件管理配置中的<skip>true</skip>而没有输出任何输出)