Управление сгенерированными JAXB -классами в проекте Maven

. У меня есть проект на основе Maven -, в который я пытаюсь добавить некоторые классы JAXB, автоматически сгенерированные плагином Maven «jaxb2 -maven -». Однако в моем первом разрезе я попал в круговой цикл зависимости:

  • Поскольку эти классы JAXB еще не сгенерированы, другие мои источники, которые ссылаются на них, имеют ошибки компиляции.
  • Поскольку эти другие источники имеют ошибки компиляции, эти классы JAXB не генерируются.

Кажется, есть две очевидные возможности для решения этой проблемы:

  1. Закомментируйте -неработающие ссылки, чтобы проект строился и классы JAXB генерировались автоматически. Затем скопируйте эти сгенерированные исходники из /targetв /src/main/java, чтобы ссылки на них не вызывали ошибок компиляции.
  2. Создайте совершенно отдельный проект, состоящий только из материала JAXB. Включите его как зависимость в мой основной проект.

Я что-то упустил здесь? Вариант #1 кажется плоским -нелепым... вот тольконе могубыть способом, которым люди используют JAXB. Вариант #2 кажется более рациональным, но все же достаточно неэффективным и громоздким.Мне действительно нужно взять на себя накладные расходы на совершенно отдельный проект только для того, чтобы использовать JAXB?

Существуют ли какие-либо более элегантные подходы, которые разработчики используют для ссылки на классы, сгенерированные JAXB -, в том же проекте, где их создает подключаемый модуль Maven?

ОБНОВЛЕНИЕ:По запросу, вот соответствующая часть моего POM:


    
        
            
            org.apache.maven.plugins
            maven-compiler-plugin
            
                1.6
                1.6
            
               
        
            org.codehaus.mojo
            jaxb2-maven-plugin
            1.4
            
                
                    generate-sources
                    
                        xjc
                    
                
            
            
                
                com.mypackage 
            
        
      

Когда я запускаю mvn clean package, я ДЕЙСТВИТЕЛЬНО вижу, что мои источники JAXB генерируются в подкаталоге /target. Однако эти сгенерированные источники не добавляются автоматически в путь к классам на этапе компиляции.

ПОСТ -ОБНОВЛЕНИЕ РАЗРЕШЕНИЯ:Оказывается, мои проблемы с компиляцией больше связаны с тем, что я работал в Eclipse, а его интеграция с Maven имеет некоторые проблемы с «плагином jaxb2 -maven -». См. этот вопрос StackOverflow для получения более подробной информации об этой проблеме и ее решении.

11
задан Community 23 May 2017 в 12:30
поделиться