Всего новичок в Maven, пытающийся (вместе с остальной частью большой команды) преобразовать чудовищную кучу унаследованного кода из муравья в Maven. Работает достаточно хорошо, но у меня следующая проблема.
У меня есть проект, давайте назовем его Core, который во время выполнения должен загрузить некоторые файлы, зарегистрированные в рамках различных проектов, назовем их ресурсами A и B. Код Core запускается в определенном рабочем каталоге, давайте назовем его core / runtime , и есть файл свойств, который он читает, чтобы определить, что загружать из ресурсов A и B, с указанием относительного пути к рассматриваемым ресурсам, например,
resource.ham=../../resources-a/files/ham.rsrc
resource.eggs=../../resources-b/files/eggs.rsrc
(Да, я знаю, что это плохо и неправильно, и мы должны загружать ресурсы как ресурсы , из JAR через загрузчик классов и, возможно, какой-то контейнер или инжектор зависимости или что-то в этом роде. Не мой идея, а не моя текущая проблема, не на столе, которая будет решена сейчас.)
(Серьезно, , пожалуйста не беспокойтесь, предлагая исправить основную проблему. Мы знаем , что нам нужно исправить основную проблему. Мы знали, что нам нужно решить основную проблему до мы переключились на Maven, и до того, как мы переключились на Maven, глупый хак действительно сработал. Я знаю, что это заставляет вас чувствовать себя хорошо, но это не помогает . Это Десятилетняя кодовая база с десятками тысяч классов, поверьте мне, в ней есть много более важных вещей.)
Этот взлом относительного пути является проблемой только в Eclipse во время разработки; в самом развернутом приложении файлы живут где-то совершенно иначе и загружаются более разумным способом.
Во всяком случае, все это работало нормально, когда это были ванильные проекты Eclipse, поэтому в указанных каталогах были такие пути:
c:\workspace\core\runtime
c:\workspace\resources-a\files
c:\workspace\resources-b\files
Однако теперь, когда они проверены как проекты Maven, каталоги теперь выглядят примерно так:
c:\workspace\core\runtime # Inexplicably unchanged
c:\workspace\maven.8675309\resources-a\files
c:\workspace\maven.6345789\resources-b\files
Вопросы:
- Можно ли сделать так, чтобы эти
maven.7762323
каталоги исчезли?
- Если нет, есть ли в Eclipse какой-нибудь способ получить путь к каталогу проекта, а затем передать его как системное свойство в конфигурации запуска, или что-то в этом роде?
Любое решение должно быть одним, которое я могу проверить в SVN, чтобы другие разработчики в моей команде могли использовать его «из коробки».
Обновление
Хорошо, я выяснил, откуда берутся каталоги maven.[number]
: Когда вы выбираете родительский каталог в репозитории SVN и говорите «Извлечь как проект Maven», вы получаете каталог maven.[number]
, соответствующий родительскому, с все актуальные проекты в виде подкаталогов. Было бы очень удобно, если бы весь код находился в одном родительском каталоге или даже в одном и том же репозитории SVN.