我已将这些模块放入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>
有什么想法吗?
答案 0 :(得分:1)
执行mvn clean compile
或mvn clean package
时不要在本地存储库中添加构建的工件。
要在本地存储库中添加构建的工件,您必须使用mvn clean install
。
请注意,实际上在构建反应堆项目时,它就可以工作,因为反应堆为每个当前模块提供了所需的依赖关系。
另一方面,仅在编译rep-digital-api
时,反应堆将无法帮助您:
mvn -pl rep-digital-api clean package
,因此编译只能因rep-digital-common
类无法解析而失败。