我正在尝试编译多模块Maven项目。我在编译添加的新模块时遇到问题。之所以出现此问题,是因为新模块试图导入另一个模块中存在的一对程序包。
这是新模块的pom.xml:
这是eclipse的项目浏览器中的视图,在这里我突出显示了从新模块的 ServicioJMS 类导入的2个软件包:
这是执行 mvn clean package
之后在命令行中显示的错误如下所示,我在父pom.xml中添加了该模块:
所以,我不知道我在做什么错¿任何想法吗?
注意:Eclipse可以很好地解决与讨论的导入相关的依赖项。
答案 0 :(得分:0)
几件事:
1)如果您有父母,请不要放置版本或组,让他们从父母那里领取。
2)从同一个父项下的模块导入依赖项时,请使用$ {project.version}
这是一个例子:
<parent>
<artifactId>parent</artifactId>
<groupId>com.essexboy</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>web</artifactId>
<dependencies>
<dependency>
<groupId>com.essexboy</groupId>
<artifactId>library</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
答案 1 :(得分:0)
使用安装而不是软件包,因为已创建了IntegradorTransformador工件(jar),但m2存储库中不存在该工件,并且IntegradorTransformadorReproceso项目找不到该工件
mvn clean install
答案 2 :(得分:0)
我遇到了类似的问题。转到您所依赖的库(在您的 ~/.m2/repository 目录下或库的 ./target 目录中)并找到已编译的库 jar。使用 jar -tf 列出它并检查缺少的类是否直接在 jar 中列出。
如果您在依赖的库中使用 spring boot maven 插件或类似插件,那么它会构造一个具有完全不同结构的 jar 并且类在其中时将隐藏在结构中而不是被直接在罐子里按名字。 Eclipse 理解这一点,但 spring boot loader 不会在依赖项中解压库的 spring boot maven 插件结构,它只会对正在执行的可运行 jar 执行此操作。
如果这对您来说是正确的,那么您可以从库的 pom 中删除有问题的构建插件,使其只是一个库,而不是一个可运行的 Spring Boot jar。