Maven报错“No Sources to Compile”

Maven报错“No Sources to Compile”

本人第一次运行Maven项目,踩了不少雷,在此记录方便日后查看。

项目介绍

跟着慕课上的视频学习Maven,敲得HelloMaven。

目录结构是这样的

-demo
  POM.xml
  |-src
    |-main
      |-resources
      |-java
	|-package
    	  |-com
    	    |-imooc
    	      |-www
    		HelloWorld.java
    |-test
      |-resources
      |-java
        |-package
          |-com
            |-imooc
              |-www
                HelloWorldTest.java

HelloWirld.java

package com.imooc.www;

public class HelloWorld{
	public String sayHello(){
		return "Hello World!";
	}
}

HelloWorldTest.java

package com.imooc.www;

import org.junit.*;
import org.junit.Assert.*;

public class HelloWorldTest{
	@Test
	public void testsayHello(){
		Assert.assertEquals("Hello World!",new HelloWorld().sayHello());
	}
}

POM.xml

<?xml version="1.0" encoding="UTF-8"?>

<project 
  xmlns="http://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>     <!-->maven版本</-->
	<groupId>com.imooc.www</groupId>       <!-->项目的包名</-->
	<artifactId>demo-module</artifactId>   <!-->模块名</-->
	<version>0.0.1-SNAPSHOT</version>      <!-->版本</-->
	
	<dependencies>							
		<dependency>						<!-->相关的依赖,这里需要Junit</-->
			<groupId>junit</groupId>       
			<artifactId>junit</artifactId>   
			<version>4.10</version> 
		</dependency>
	</dependencies>
	
	
	<properties>
        <!-->指定使用UTF-8</-->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        
        <!-->编译和运行时指定使用的JDK版本,这里我用的是最新的11</-->
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
	</properties>

 </project>

问题一:“No Sources to Compile”

当第一次在命令行输入:mvn compile,敲入回车,看着它一直在下载jar包,还以为第一次就成功运行了,心里美滋滋的。结果没多久就告诉我“No Sources to Compile”

报错如下:

[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\学习\Maven\demo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo-module ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ demo-module ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\学习\Maven\demo\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ demo-module ---
[INFO] No sources to compile

解决:

出现了这个原因应该是项目目录结构的问题。

在一个Maven项目中必须要有‘’src“目录和”POM.xml“文件,这两个是同一个层次的。其次在”src“目录下必须存在”main“和”test“目录。在”main“和”test“目录下有必须要有”java“目录。剩下的就可以自己定义包名,项目名了。

几点注意

  • 文件目录区分大小写。“java”和“Java”是不同的
  • 注意拼写错误,我就是将“src”写成了“sre”

问题二:平台使用“GBK”而保存的java文件却是“UTF-8”

相信细心的同学在上一个问题的报错相信中注意到了还存在一个警告

[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

解决:

出现这问题的原因就是平台使用“GBK”而保存的java文件却是“UTF-8”。

所以只需要在POM.xml文件中加上

<properties>
        <!-->指定使用UTF-8</-->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

问题三:“不再支持目标选项 1.5。请使用 1.6 或更高版本。”

解决:

这个问题就很好解决了

只需要指定JDK5以上的版本就行

同样在POM.xml文件中加上指定JDK的语句

<properties>
       
        <!-->编译和运行时指定使用的JDK版本,这里我用的是最新的11</-->
		<maven.compiler.source>11</maven.compiler.source>
		<maven.compiler.target>11</maven.compiler.target>
    
</properties>

解决以上问题,终于可以mvn test了!

mvn test运行成功的信息

 T E S T S
-------------------------------------------------------
Running com.imooc.www.HelloWorldTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.051 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.110 s
[INFO] Finished at: 2019-06-08T13:24:21+08:00
[INFO] ------------------------------------------------------------------------
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值