Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一个pom文件中生成两个xmlbeans_Java_Maven_Xmlbeans_Xmlbeans Maven Plugin - Fatal编程技术网

Java 如何在一个pom文件中生成两个xmlbeans

Java 如何在一个pom文件中生成两个xmlbeans,java,maven,xmlbeans,xmlbeans-maven-plugin,Java,Maven,Xmlbeans,Xmlbeans Maven Plugin,我试图在一个项目中生成两个xmlbeans。例如,每一个都获取参与者对象,所以我不能将它们放在一个配置中。我的做法是使用两种执行方式,这是我的pom文件: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xmlbeans-maven-plugin</artifactId> &

我试图在一个项目中生成两个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>
<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>

org.codehaus.mojo
xmlbeans maven插件
2.3.3
xmlbean1
生成源
xmlbeans
src/main/xsdconfig/xmlbean1
真的
src/main/xsd/xmlbean1
xmlbean2
生成源
xmlbeans
src/main/xsdconfig/xmlbean2
真的
src/main/xsd/xmlbean2
真的

但它根本不起作用。有人能帮我吗,谢谢你应该尝试使用另一个不同的阶段进行第二次调用。AFAIK同一插件不能在同一生命周期阶段执行两次。

这不起作用,因为
id
仅用于查找现有执行(当您想要调整它时)

<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>
你的问题是Maven不能在同一
阶段运行同一个插件两次

<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>
你有什么选择

<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>
  • 将其分为不同的子模块

  • <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>
    
  • 使用Ant创建xmlbeans并使用

  • <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>
    

    但是我想知道为什么不能使用两个
    xmlConfig
    元素。只需将所有
    .xsd
    文件放在一个目录中,并根据需要从中创建尽可能多的bean(请参见“”)

    谢谢大家,我得到了答案,以下pom工作正常:

    <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>
    
    
    id1
    生成源
    xmlbeans
    src/main/xsd/first
    src/main/xsdconfig/first
    真的
    目标/第一资源
    目标/一流
    target/first/first.stale
    id2
    生成源
    xmlbeans
    src/main/xsd/second
    src/main/xsdconfig/second
    真的
    目标/秒资源
    目标/二等
    target/second/second.stale
    
    生成单个xmlbeans有效吗?谢谢大家,我得到了答案,下面的pom工作得很好:因为这两个xmlbeans都有相同的组件,比如参与者,而maven在编译时会发生冲突。