Где поставить заглушки классы в проектах Maven

У меня есть проект Maven со следующим макетом каталога:

    .
└── src    
     ├── main
     │    └── ...
     └── test
           └── java
                 └── com.foo
                      ├── stubs
                      │   └── JsonSnippets.java
                      ├── bar
                      │   └── BarTest.java
                      └── ... further tests

JsonSnippets класс выглядит так:

package com.foo.stubs;

public class JsonSnippets {

    public final static String SNIPPET_A = "{...}";

}

В пределах BarTest класс, я хочу использовать JsonSnippets класс, поэтому у меня есть

package com.foo.bar;

import com.foo.stubs.JsonSnippets;

// ...

@Test
public void testWithJsonSnippets() {
    String json = JsonSnippets.SNIPPET_A;
    // ...
}

Когда я сейчас бегу mvn testЯ получаю следующее сообщение об ошибке:

cannot find symbol
[ERROR] symbol:   class JsonSnippets
[ERROR] location: package com.foo.bar

Обратите внимание, что все работает, как ожидалось, когда я ставлю JsonSnippets класс в src/main/... пакет / каталог.

2 ответа

Решение

Проблема заключалась в неправильной конфигурации Maven в каталоге проекта. После того, как я удалил все файлы кэша, не связанные с проектом, и создал проект "с нуля" (с точно такими же источниками), все работало, как описано в моем вопросе.

Проверьте, правильно ли вы импортировали класс JsonSnippet или нет.

Проверьте, есть ли в классе JsonSnippet открытый конструктор.

Другие вопросы по тегам