java - Maven 全新安装 : cannot find symbol

标签 java maven build annotations

我的 Maven 全新安装失败。下面是错误信息。

[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile
(default-compile) on project MyProject: Compilation failure:
Compilation failure:

[ERROR] C:\..\MyClass.java:[13,2] cannot find symbol

[ERROR] symbol  : class MyAnnotation

[ERROR] location: class mypackage.MyClass

MyClass.java

public class MyClass{

    @MyAnnotation
    public static class MyAnnotation{
        //some static nested class code here...
    }

MyAnnotation.java

@Retention (RetentionPolicy.RUNTIME)
public @interface MyAnnotation{
} 

我不知道为什么这会出现问题,任何人都可以给我一些想法吗?

最佳答案

发现问题...

我很抱歉,因为我没有包含足够的代码来让任何人确定问题的根本原因,通常我不会在我的帖子中包含导入语句,但这次我应该包含。下面的类是一个更完整的例子。正如我们所看到的,下面的类声明了对驻留在静态嵌套类(在同一个 .java 文件中)的对象的静态导入。虽然从编译的角度来看这不是非法的,但它导致我的 Maven 全新安装出现问题。我仍然不能 %100 确定为什么 Maven 不喜欢这个,但是这种静态导入的方式从一开始就没有真正意义。为了解决这个问题,我删除了静态导入并在使用静态导入的任何地方替换了一个普通的静态调用 (MyAnnoation.someObject)。

package com.classes;

import static com.classes.MyClass.MyAnnotation.someObject;

public class MyClass{

     @MyAnnotation
     public static class MyAnnotation{

     public static final Object someObject = new Object();

}

再一次,我很抱歉没有在我的原始帖子中提供静态导入详细信息,希望有人觉得这有帮助。

关于java - Maven 全新安装 : cannot find symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167545/

相关文章:

java - Java 中遗传算法的均匀交叉

java - Eclipse 仅从测试文件夹加载 log4.properties

java - 无法摆脱 Split 包,多个 jars 提供相同的包

docker - 如何使用 docker buildx 推送镜像到 registry 使用 http 协议(protocol)?

java - 为什么 ArrayList 不覆盖 equals() 以获得更好的性能?

java - Selenium Java |使用嵌套在类中的 xpath 查找/单击按钮时遇到问题

java - 在 Gremlin 中 map() 是如何工作的?

maven - 如何在gradle中迭代项目的依赖项

eclipse - 在为项目构建不同的 Eclipse CDT 共享资源文件夹中

configuration - 将 Javascript 对象公开为 webpack 中的模块