2010-05-26 3 views
1

Может ли кто-нибудь сказать мне, как настроить maven для него также для компиляции источников из каталога target/hibernate3/generated-sources? Я уже прочитал this и другие сообщения, но они, похоже, не решают мою проблему (что действительно кажется тривиальным).Maven не скомпилирует target/hibernate3/сгенерированные источники

Я использовал конфигурацию спящего подхода снизу вверх для cfg.xml, hbm.xml и поколения POJO (т. Е. Автоматически сгенерировал полную конфигурацию спящего режима из существующей схемы базы данных). Я также использую только стандартные схемы maven и hibernate3-plugin. Тем не менее, при выполнении mvn compile в командной строке, в то время как мои источники находятся в src/main/java, а сгенерированные источники в /target/hibernate3/generated-sources только с src/main/java скомпилированы и скопированы в target/classes. Я не хотел бы генерировать источники в src/main/java, так как мне бы хотелось mvn clean очистить их.

Я хотел бы решить проблему, используя только command-line, plugins и pom.xml. Есть ли способ настроить maven-compiler-plugin? Или есть другой способ?

С уважением и благодарностью за любую помощь.

+0

Что именно вы хотите достичь? вы хотите исключить некоторые файлы из вашего .jar? – ant

+0

На самом деле часть «target directory» была немного не в моем предыдущем ответе, но я понимаю, что это может ввести в заблуждение, и я это проясню. –

ответ

4

Соглашение заключается в сгенерировании кода в target/generated-sources/<generator>, поэтому в вашем случае я бы сгенерировал источники в target/generated-sources/hibernate3 (грустно, что плагин hibernate3 по умолчанию не соответствует этому соглашению). Во всяком случае, все должно работать и на самом деле, POM, который я опубликовал в this previous answer (делает повторный запуск моего образца проекта, и это определенно работает). Можете ли вы стать жертвой MHIBERNATE-104? Честно говоря, я в замешательстве.

В качестве обходного пути вы можете использовать Build Helper Maven Plugin и его цель build-helper:add-source, чтобы добавить каталог в качестве исходного каталога. См. Страницу Usage для примера конфигурации.


Я использую именно П вы предложенный здесь, просто не подключен к жизненному циклу сборки по умолчанию (без расстрелов).

Это должно быть причиной проблемы: если hibernate3:hbm2java не является частью жизненного цикла сборки, он не получает возможность зарегистрировать выходной каталог в качестве исходной папки. Поэтому Maven не знает об этом во время «нормальной сборки» и просто игнорирует его.

+0

+1 @Pascal Thivent вы можете использовать это, производя классы из xml-схемы? – ant

+0

@ Паскаль: спасибо за ваш ответ. Что меня действительно смущает, так это то, что каталог по умолчанию 'target/hibernate3/generated-sources' не является соглашением. Я только что проверил, и ни один из этих двух каталогов не работает из коробки, но только 'src/main/java' скомпилируется. Возможно, я прикрутил что-то еще, но я все равно попробую второе решение, это должно работать без проблем. – mmm

+0

@ c0mrade: Да, вы можете (см. [Этот ответ] (http://stackoverflow.com/questions/2857081/how-can-i-tell-jaxb-maven-to-genereate-multiple-schema-packages/2857613 # 2857613), [этот] (http://stackoverflow.com/questions/2556442/maven-jaxb2xjc-jaxwswsimport-to-be-added-in-eclipse) или [этот] (http://stackoverflow.com/вопросы/2295025/лучший Автострада в управлении сгенерированных-артефакты-для-веб-сервис-XML-привязки-в-Java-WE/2295146 # 2295146)). –