为什么Maven 3多模块项目失败"干净的包",并成功进行"清理编译"其次是"包"?

时间:2015-10-25 21:30:24

标签: maven-3 maven-package

这类似于提问和回答的问题Maven test dependency on multi module project。但是,这与test阶段无关,而是与package有问题。

我有一个多模块项目,如:

root
|
|-parent-client
| |
| |-client-1
| |
| \-client-2
|
\-parent-server
  |
  |-server-1
  |
  |-server-2
  |
  |-server-3
  |
  \-server-4

我的依赖关系是client-1 -> client-2 -> server-1 -> server-2 -> server-3 -> server-4,也就是说client-2取决于server-1server-1取决于server-2,依此类推。每个范围都限定为compile

问题是,当我在mvn clean package中运行root时,server-2 package server-3 does not exist的{​​{1}}编译失败。

当我在mvn clean compile中运行mvn package后跟root时,它会毫无问题地运行。

当它失败时,它总是在同一模块上失败。

我对Build Lifecycle的理解是compile package是多余的,因为package包含compile生命周期。

项目更复杂,共有41个模块,两个父项和一个根。创建一个简单的例子不可避免地按预期工作。

我很难知道如何继续。

更新2015-10-25

事实证明我对成功命令的顺序是错误的。我已更新了我的问题和说明,并根据Michael-O的请求包含了调试输出:

<snip/>

[INFO] --- maven-ejb-plugin:2.3:ejb (default-ejb) @ terradatum-systemconfig ---
[INFO] Building EJB terradatum-systemconfig-4.8.1-SNAPSHOT with EJB version 3.0
[INFO] Building jar: /home/rbellamy/Development/Terradatum/metrics-project/metrics-server/systemconfig/ejb/target/terradatum-systemconfig-4.8.1-SNAPSHOT.jar
[INFO] Building EJB client terradatum-systemconfig-4.8.1-SNAPSHOT-client
[INFO] Building jar: /home/rbellamy/Development/Terradatum/metrics-project/metrics-server/systemconfig/ejb/target/terradatum-systemconfig-4.8.1-SNAPSHOT-client.jar

<snip/>

[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building terradatum-payment 4.8.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ terradatum-payment ---
[INFO] Deleting /home/rbellamy/Development/Terradatum/metrics-project/metrics-server/payment/ejb/target
[INFO] 
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ terradatum-payment ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ terradatum-payment ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to /home/rbellamy/Development/Terradatum/metrics-project/metrics-server/payment/ejb/target/classes
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING : 
[INFO] -------------------------------------------------------------
[WARNING] bootstrap class path not set in conjunction with -source 1.6
[INFO] 1 warning
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/rbellamy/Development/Terradatum/metrics-project/metrics-server/payment/ejb/src/main/java/com/terradatum/common/payment/PaymentRemoteDelegate.java:[13,42] package com.terradatum.common.systemconfig does not exist

<snip/>

更新2015-11-16

经过多次重构后,构建不再在同一个地方失败。我一直看到它以类似的方式失败,但失败的位置四处移动。我没有运行多个线程,但我觉得很明显,在某个地方有一个明显可用的包(在我的~/.m2/repository本地缓存中绝对可以找到并且可以在classpath添加到{{1} })Maven编译器不可见。

知道我对种族状况的了解,我不知道如何提交任何实质性的错误报告,因为我不能提供任何比假设和指责更多的东西。

0 个答案:

没有答案