Как получить абсолютный путь к ресурсу в подключаемом модуле maven?
Имеется два maven модуля. Структура у них примерно следующая:
first-module
│
├─pom.xml
│
└─src
│
└─main
│
└─resources
│
└─first.xsd
second-module
│
├─pom.xml <-- здесь подключается first-module
│
└─src
│
└─main
│
├─java
│ │
│ └─com.example.second
│ │
│ └─JaxbUtil.class
│
└─resources
│
└─second.xsd
Класс JaxbUtil внутри second-module:
@UtilityClass
public class JaxbUtils {
private static File getXsdFileFromResourceFolder(String xsdFileName) {
final Path resourceDirectory = Paths.get("src", "main", "resources");
final String xsdFilePath =
String.format("%s/%s", resourceDirectory.toFile().getAbsolutePath(), xsdFileName);
return new File(xsdFilePath);
}
}
Метод getXsdFileFromResourceFolder возвращает File переданной схемы. Например, если я передам в этот метод такую строку:
second.xsd
, то он вернёт мне файл по такому пути:
D:/my_project/second-module/src/main/resources/second.xsd
, и это будет действительно валидный путь.
Мой вопрос следующий: каким образом я могу указать путь к схеме first.xsd, которая находится в подключаемом модуле? Ведь очевидно, что путь D:/my_project/second-module/src/main/resources/first.xsd будет невалиден.