Где поставить заглушки классы в проектах 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 открытый конструктор.