无法使用 exec-maven-plugin 执行 maven 多模块项目
couldn't execute maven multi module project using exec-maven-plugin
我有一个多模块 Maven 项目 here .
父项目有 3 个模块 common,with-paranamer,without-paranamer。
with-paranamer和without-paranamer模块相互独立,都依赖于common模块
在没有参数的模块中,我添加了对公共模块的依赖,如 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
class。
所以我在父 pom.xml here.
的 pluginManagement 下添加了 exec-maven-plugin
在没有参数的模块中,我添加了像 this.
这样的插件
我已经按照 Whosebug post 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 使我的程序 运行 成功。
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>
)
我有一个多模块 Maven 项目 here .
父项目有 3 个模块 common,with-paranamer,without-paranamer。
with-paranamer和without-paranamer模块相互独立,都依赖于common模块
在没有参数的模块中,我添加了对公共模块的依赖,如 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
class。
所以我在父 pom.xml here.
的 pluginManagement 下添加了 exec-maven-plugin
在没有参数的模块中,我添加了像 this.
我已经按照 Whosebug post 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 使我的程序 运行 成功。
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>
)