Ответ 1
Рабочее решение - указать пустой outputDirectory
:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
Начиная с некоторой версии плагина сборки, maven создает следующее предупреждение:
[ПРЕДУПРЕЖДЕНИЕ] Дескриптор сборки содержит относительный корневой каталог ссылка, которая не совместима с кросс-платформой/
Есть ли рекомендованное готовое к использованию решение для этого? Прямой googling предоставил мне много мусора и никакой реальной помощи. Повторная проверка сборки плагина Maven для сборки не дала мне ответа, возможно, у кого-то есть лучший навык поиска и может помочь.
UPDATE
Да, это, вероятно, из-за Linux-like outputDirectory
, но как я должен переписать это, чтобы быть портативным? Посмотрел документацию по сборке плагинов и не нашел руководства по переносимости.
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
Рабочее решение - указать пустой outputDirectory
:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory></outputDirectory>
</fileSet>
</fileSets>
Использование пустого элемента outputDirectory
работает, но я не удивлюсь, если кто-то предположит, что его можно было бы безопасно удалить.
Итак, чтобы быть более явным, вы также можете избежать предупреждения, написав:
<outputDirectory>${file.separator}</outputDirectory>
Обратите внимание, что это может произойти в других местах, кроме как только /
. Вышеуказанные ответы верны, но не охватывают этот случай.
Ищите что-то подобное в файле assembly.xml:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>/lib</outputDirectory> <!-- <<< look for this -->
</fileSet>
</fileSets>
и измените на это:
<fileSets>
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>lib</outputDirectory>
</fileSet>
</fileSets>