maven compilation failure

typist
  • 4
新手上路,请多包涵

一、maven编译spring boot工程找不到程序包

1.A、B两个工程
2.B工程依赖于A工程[A打成jar包]
maven编译B工程期间报 程序包*不存在

com/ebtce/open/inner/logistic/service/LogisticSubscribeAPI.java:[3,51] 程序包com.ebtce.open.common.service.logs.impl不存在
com/ebtce/open/inner/logistic/service/LogisticSubscribeAPI.java:[4,38] 程序包com.ebtce.open.common.util不存在

二、说明

1.maven 编译jdk版本与工程保持一致(jdk1.8)

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Java version: 1.8.0_101, vendor: Oracle Corporation

2.A工程JAR包正常引入[A JAR包正常安装到本地库中,反编译jar包相关代码正常包含]

[DEBUG]    com.ebtce.open.common:ebtce-service-open-common:jar:1.1:compile

图片描述

三、pom相关配置

<dependency>
    <groupId>com.ebtce.open.common</groupId>
    <artifactId>ebtce-service-open-common</artifactId>
    <version>1.1</version>
</dependency>
    
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

依赖正常
图片描述

评论
阅读 10.2k
2 个回答
typist
  • 4
新手上路,请多包涵
✓ 已被采纳

一、分析
找不到包应该为路径问题,项目能正常启动,maven编译不过,猜测所打jar包出现的问题

二、原因
参考:maven mulit-module dependency package not found
问题出现在maven spring boot打包插件上
1.spring boot packaging plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

打包后所有的包和类都放到了BOOT-INF文件夹中

图片描述

2.maven packaging plugin

build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
    </plugins>
</build>

包在根路径下

图片描述

三、解决方案

替换build插件为maven打包插件即可

其它原因参考maven compilation failure

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏