Java 不能';t使用execmaven插件执行maven多模块项目
我有一个多模块maven项目 父项目有3个通用模块,带paranamer,不带paranamer 带paranamer和不带paranamer的模块相互独立,并且都依赖于公共模块 在没有paranamer模块的情况下,我向公共模块添加了依赖项,如 以下是该项目的结构Java 不能';t使用execmaven插件执行maven多模块项目,java,maven,maven-3,exec-maven-plugin,maven-exec-plugin,Java,Maven,Maven 3,Exec Maven Plugin,Maven Exec Plugin,我有一个多模块maven项目 父项目有3个通用模块,带paranamer,不带paranamer 带paranamer和不带paranamer的模块相互独立,并且都依赖于公共模块 在没有paranamer模块的情况下,我向公共模块添加了依赖项,如 以下是该项目的结构 . ├── pom.xml ├── common │ ├── pom.xml │ ├─ src │ ├── main │ ├─ java │ ├── ParanamerUtil
.
├── 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插件在没有paranamer模块的情况下执行ParametersExample
类。
因此,我在父pom.xml的pluginManagement下添加了execmaven插件。在没有paranamer模块的情况下,我添加了类似的插件 我遵循了stackoverflow帖子中提到的上述说明 当我运行
mvn时,请验证该命令是否成功
但是当我尝试在没有paranamer的情况下运行命令mvn exec:java-Dexec.mainClass=parameters sexample-pl
时,我发现了以下错误
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插件使程序成功运行。没有paranamer
模块依赖于paranamer maven demo.common.1.0-SNAPSHOT
,但它在哪里可以找到它?最明显的答案是:在本地存储库中。但它不在那里,除非您安装它(同时,您必须安装父项目的pom)
mvn-N clean install
-安装父pom。(-N
代表非递归
,这意味着目标将仅针对父项目执行,而不针对子模块)
mvn-pl通用清洁安装
-安装通用
模块
现在,调用
exec:java
将会成功(但是没有打印任何输出,因为插件管理配置中的true
)没有paranamer
模块依赖于paranamer maven demo.common.1.0-SNAPSHOT
,但是它在哪里可以找到它呢?最明显的答案是:在本地存储库中。但它不在那里,除非您安装它(同时,您必须安装父项目的pom)
mvn-N clean install
-安装父pom。(-N
代表非递归
,这意味着目标将仅针对父项目执行,而不针对子模块)
mvn-pl通用清洁安装
-安装通用
模块
现在,调用
exec:java
将会成功(但是没有打印任何输出,因为插件管理配置中的true
)您遇到了依赖性问题-re不是这样的工件:paranamer maven demo:common:jar:1.0-SNAPSHOT。显示所有模块的pom.xml和指向代码库的projectlink。这也是问题的第一行。paranamer maven demo:common:jar也是父项目的子模块。我还添加了依赖项。您应该将pom.xml片段放在这里。您遇到了一个依赖项问题-re不是这样的工件:paranamer maven demo:common:jar:1.0-SNAPSHOT。显示所有模块的pom.xml和指向代码库的projectlink。这也是问题的第一行。paranamer maven demo:common:jar也是父项目的子模块。我还添加了依赖项。您应该将pom.xml片段放在这里。我只能使用mvn clean install
而不使用-N
标志。如果您安装所有模块,是否会出现问题?如果是的话,我是否正确地认为是那些“依赖”的设备需要安装?到目前为止,我很高兴对don't-fix-it-if-it't Break land一无所知。我只能在没有-N
标志的情况下使用mvn clean install
。如果您安装所有模块,是否会出现问题?如果是的话,我是否正确地认为是那些“依赖”的设备需要安装?到目前为止,我很高兴自己对“如果它没有坏掉就不要修理”一无所知。