为什么Maven找不到另一个模块/项目中的软件包?

时间:2019-03-28 14:58:56

标签: java eclipse maven

我正在尝试编译多模块Maven项目。我在编译添加的新模块时遇到问题。之所以出现此问题,是因为新模块试图导入另一个模块中存在的一对程序包。

这是新模块的pom.xml:

enter image description here enter image description here

这是eclipse的项目浏览器中的视图,在这里我突出显示了从新模块的 ServicioJMS 类导入的2个软件包:

enter image description here enter image description here

这是执行 mvn clean package

之后在命令行中显示的错误

enter image description here

如下所示,我在父pom.xml中添加了该模块:

enter image description here

所以,我不知道我在做什么错¿任何想法吗?

注意:Eclipse可以很好地解决与讨论的导入相关的依赖项。

3 个答案:

答案 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。