Как создать два xmlbeans в одном файле pom - PullRequest
5 голосов
/ 12 июля 2011

Я попытался сгенерировать два xmlbeans в одном проекте. Каждый, например, получает объект участника, поэтому я не могу поместить их в одну конфигурацию. То, как я это сделал, использовало два исключения: вот мой файл pom:

            <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>xmlbeans-maven-plugin</artifactId>
            <version>2.3.3</version>
            <executions>
                <execution>
                    <id>xmlbean1</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xmlbeans</goal>
                    </goals>
                    <configuration>
                        <xmlConfigs>
                            <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean1</xmlConfig>
                        </xmlConfigs>
                        <verbose>true</verbose>
                        <schemaDirectory>src/main/xsd/xmlbean1</schemaDirectory>
                    </configuration>
                </execution>
                <execution>
                    <id>xmlbean2</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xmlbeans</goal>
                    </goals>
                    <configuration>
                        <xmlConfigs>
                            <xmlConfig implementation="java.io.File">src/main/xsdconfig/xmlbean2</xmlConfig>
                        </xmlConfigs>
                        <verbose>true</verbose>
                        <schemaDirectory>src/main/xsd/xmlbean2</schemaDirectory>
                    </configuration>
                </execution>
            </executions>
            <inherited>true</inherited>
        </plugin>

Но это не работает вообще. Может ли кто-нибудь помочь мне с этим, спасибо

Ответы [ 3 ]

2 голосов
/ 14 июля 2011

Спасибо всем, я получил ответ, следующий пом работает нормально:

<executions>
                <execution>
                    <id>id1</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xmlbeans</goal>
                    </goals>
                    <configuration>
                        <schemaDirectory>src/main/xsd/first</schemaDirectory>
                        <xmlConfigs>
                            <xmlConfig implementation="java.io.File">src/main/xsdconfig/first</xmlConfig>
                        </xmlConfigs>
                        <verbose>true</verbose>
                        <sourceGenerationDirectory>target/first-resource</sourceGenerationDirectory>
                        <classGenerationDirectory>target/first-class</classGenerationDirectory>
                        <staleFile>target/first/first.stale</staleFile>
                    </configuration>
                </execution>
                <execution>
                    <id>id2</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xmlbeans</goal>
                    </goals>
                    <configuration>
                        <schemaDirectory>src/main/xsd/second</schemaDirectory>
                        <xmlConfigs>
                            <xmlConfig implementation="java.io.File">src/main/xsdconfig/second</xmlConfig>
                        </xmlConfigs>
                        <verbose>true</verbose>
                        <sourceGenerationDirectory>target/second-resource</sourceGenerationDirectory>
                        <classGenerationDirectory>target/second-class</classGenerationDirectory>
                        <staleFile>target/second/second.stale</staleFile>
                    </configuration>
                </execution>
            </executions>
1 голос
/ 12 июля 2011

Это не работает, потому что id используется только для поиска существующего исполнения (когда вы хотите настроить его).

Ваша проблема в том, что Maven не может запустить один и тот же плагин дважды вто же самое phase.

Какие у вас варианты?

  1. Разделите это на разные подмодули

  2. Используйте Ant длясоздайте xmlbeans и используйте элемент antrun.

Но мне интересно, почему вы не можете использовать два элемента xmlConfig.Просто поместите все ваши .xsd файлы в один каталог и создайте из них столько bean-компонентов, сколько необходимо (см. « Несколько каталогов XSDConfig »)

1 голос
/ 12 июля 2011

Вы должны попытаться использовать другую отдельную фазу для второго вызова. AFAIK один и тот же плагин не может быть выполнен дважды на одной и той же фазе жизненного цикла.

...