新的Maven项目无法编译:“预期App.java:[1,8] <identifier>”

时间:2019-01-24 20:53:50

标签: java maven archetypes generate

我的步骤:

$ mkdir maven-test
$ cd maven-test
$ mvn archetype:generate

然后我输入

  • 1313作为快速入门原型。

  • 8用于快速入门原型版本1.4。

  • info.cameronhudson.18655 for groupId

  • lab1代表artifactId

  • 1.0(快照版本)

  • public-recommendation-service作为包名

  • Y进行确认

然后我进入了新项目并尝试安装它。

$ cd lab1
$ mvn clean install

这产生了以下编译错误。

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/cameronhudson/Repositories/CMU/18-655_Lab_1_Public_Recommendation_Service/lab1/src/main/java/public-recommendation-service/App.java:[1,8] <identifier> expected
[ERROR] /Users/cameronhudson/Repositories/CMU/18-655_Lab_1_Public_Recommendation_Service/lab1/src/main/java/public-recommendation-service/App.java:[1,15] class, interface, or enum expected
[INFO] 2 errors

App.java包含(默认情况下):

package public-recommendation-service;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

我的Java版本:

$ java --version
java 11.0.2 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+7-LTS, mixed mode)

1 个答案:

答案 0 :(得分:3)

程序包名称必须是有效的Java标识符。这意味着您的软件包名称无效有两个原因。

有连字符,标识符中不允许使用连字符。编译器中的解析器认为标识符是包名称中第一个连字符前的一部分,即public。这是一个关键字,不允许作为标识符。

尝试使用其他软件包名称,例如public_recommendation_servicepubrecservice