編譯問題彙總-找不到符號 程序包不存在

使用springboot搭建多模塊項目,pom引用依賴關係正常,編譯正常狀況。父項目maven package出現以下異常:java

(1)第一類異常

[ERROR] 符號: 類 xxx
[ERROR] xxx.java:[7,38] 程序包xxx不存在
檢查以下父pom以及其餘非打包模塊的pom文件是否存在以下插件,如有則刪除或註釋次插件(嵌套引用下插件形成編譯異常)web

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

注意   若是父pom是工程運行所需模塊,spring-boot-maven-plugin不可刪除,調整爲如下模式spring

<plugin>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-maven-plugin</artifactId>  
            <configuration>  
                <fork>true</fork>
                <classifier>exec</classifier>
<!--classifier:SpringBoot工程打包編譯時,會生成兩種jar包,一種是普通的jar,另外一種是可執行jar。默認狀況下,這兩種jar的名稱相同,在不作配置的狀況下,
普通的jar先生成,可執行jar後生成,形成可執行jar會覆蓋普通的jar,因此編譯失敗:程序包xxx不存在。>
      </configuration>
</plugin>

 


一般僅在app工程中使用此插件(配合devtools設置熱部署)apache

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--fork : 若是沒有該項配置,個devtools不會起做用,即應用不會restart -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>

(2)第二類異常

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test (default-test) on project webapp: There are test failures.
檢查各個測試類是否打包跳過編譯,能夠使用@ignore註解(編譯時跳過測試用例類)springboot

@Ignore
@RunWith(SpringRunner.class)
@SpringBootTest
public class CommonApplicationTests {

@Test
public void contextLoads() {
}

}app

(3)第三類異常

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.0.4.RELEASE:repackage (default) on project webapp: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:2.0.4.RELEASE:repackage failed: Unable to find main class -> [Help 1]
spring-boot-maven-plugin插件會自動掃描啓動類 並執行啓動類main方法,因此檢測使用插件工程下是否存在啓動類(位置是否正確) 若沒有添加啓動類加@SpringBootApplication並重寫main方法webapp

@SpringBootApplication
public class WebappApplication {

public static void main(String[] args) {
SpringApplication.run(WebappApplication.class, args);
}
}


最後:maven clean   後 maven packagemaven

相關文章
相關標籤/搜索