Я немного шокирован тем, что (если?) Не был задан этот точный вопрос, но 15 минут сканирование SO не обнаружило точного совпадения. (Если я ошибаюсь, Для наших целей у нас есть следующий контекст (возможно, большая часть которого не имеет отношения к делу):
lib
- этот каталог в деревьях разработчиков является неприкосновенной территорией SVN. Но распространение чего-то для публичного использования с build / lib / *. Jar
вызывает затруднения. То же самое верно и для документации и других встроенных артефактов, которые мы хотим разместить в едином месте в дистрибутиве, но не хотим, чтобы разработчики и пользователи использовали совершенно разные структуры каталогов. Каталог build /
очень удобен для разработки, но распространять его - неприятный артефакт. В целях распространения я бы предпочел, чтобы все JAR находились в одном месте lib
, на самом деле, структура, подобная приведенной ниже, имеет наибольший смысл. В настоящее время, мы строим эту структуру на лету с помощью ant dist
, выполняя некоторые замысловатые манипуляции с путями по мере создания артефактов .tar.gz и .zip.
project-root/ project-root/source // present in only some dists project-root/etc // same as in development tree project-root/doc // same as in development tree project-root/doc/javadoc // from build project-root/lib // all dependency and built JAR files project-root/bin // same as in development tree build.properties // build and release numbering, etc...
Это вопрос узко о том, «как мне поддерживать чистую структуру проектов разработки и распространения?» как я просил выше; но также для сбора информации о макетах проектов Java / Ant в целом и критики нашего конкретного подхода. (Да, если вы считаете, что это должна быть вики сообщества, я сделаю это так ...)