个人最近项目中所遇到的问题,记录下便自己和同样遇到问题的小伙伴提供一个参考。
通常Maven里报红波浪线的常见问题
①可能是子工程没有继承父工程
注意父工程中有中对应的module:
<groupId>com.fred.parent</groupId>
<artifactId>mall</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>fred-api</module>
</modules>
注意子工程中有对应的parent:
<parent>
<groupId>com.fred.parent</groupId>
<artifactId>mall</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>fred-api</artifactId>
②可能是导包智能提示一回车导致导错了包
例如:
父工程:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
子工程:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
注意看groupId,父工程是org.springframework.cloud,而子工程是org.springframework.boot,这种情况Maven会因为找不到要导入的包而导致MavenDependencies报红波浪线,但是在pom.xml文件中却不报错,并且显示正常,此时这种简单而又不容易找到的错误,毫不夸张的说还真能让人找个一天半天的。
③Maven构建本身问题
有时候怎么查都没问题,并且确定pom.xml是没问题的,而且Reimport All Maven Projects和Generate Sources and Update Folders For All Projects都没用。这个时候一般都是Maven本身的Bug了。你把出错的项目下的pom.xml文件中的dependencies剪切掉(Ctrl+X),然后再保存(Ctrl+S),再撤回(Ctrl+Z),再保存(Ctrl+S),Reimport All Maven Projects和Generate Sources and Update Folders For All Projects一下,你会发现红色波浪线消失啦。至于问题的根本原因我也不是很清楚。
④Maven项目显示灰色导致其他项目由于缺包类型无法使用
如图中所示:
这是由于被Maven忽略了。
通过Settings->Build->Maven->Ignored Files中
去掉这个√,Apply即可。
以上是个人最近遇到的问题的总结,供参考。