Maven:编译模块失败

时间:2018-08-28 10:36:07

标签: maven

我已将这些模块放入pom.xml

<modules>
    <module>rep-digital-common</module>
    <module>rep-digital-api</module>
</modules>

因此,rep-digital-common包含通用类rep-digital-api模块需求。

当我使用它们编译时

$ mvn clean compile
...
[INFO] rep-digital-common ................................. SUCCESS [  7.571 s]
[INFO] rep-digital-api .................................... SUCCESS [ 17.988 s]

但是,当我表演时:

$ mvn -pl rep-digital-api clean package

失败:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.345 s
[INFO] Finished at: 2018-08-28T12:29:19+02:00
[INFO] Final Memory: 58M/140M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project rep-digital-api: Compilation failure: Compilation failure: 
[ERROR] /home/jcabre/projectes/repo-digital/rep-digital-api/src/main/java/net/gencat/transversal/repositori/digital/document/service/DocumentService.java:[29,65] cannot find symbol
[ERROR]   symbol:   class ContentStatus

ContentStatus符号位于rep-digital-common上。我不太清楚怎么了。

很明显,rep-digital-common被添加为rep-digital-api依赖项:

<dependency>
    <groupId>net.gencat.transversal.repositori.digital</groupId>
    <artifactId>rep-digital-common</artifactId>
</dependency>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

执行mvn clean compilemvn clean package时不要在本地存储库中添加构建的工件。
要在本地存储库中添加构建的工件,您必须使用mvn clean install

请注意,实际上在构建反应堆项目时,它就可以工作,因为反应堆为每个当前模块提供了所需的依赖关系。

另一方面,仅在编译rep-digital-api时,反应堆将无法帮助您:

 mvn -pl rep-digital-api clean package

,因此编译只能因rep-digital-common类无法解析而失败。