maven可以找到生成的源(maven clean install)

时间:2015-03-02 15:58:01

标签: java eclipse maven

我刚刚在几个小时前就遇到了这个问题,它似乎一直工作到现在。

我通过以下方式在我的pom中生成代码:

 <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>

            <configuration>
                <sourceDestDir>${basedir}/target/generated/java</sourceDestDir>
                <keep>true</keep>
                <verbose>true</verbose>
                <extension>true</extension>
                <wsdlDirectory>${basedir}/src/main/resources/META-INF</wsdlDirectory>
            </configuration>

            <executions>
                <execution>
                    <id>ecad-ws</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <wsdlFiles>
                            <wsdlFile>wsdl/ECadDocumentServiceWSDL.wsdl</wsdlFile>
                        </wsdlFiles>
                        <staleFile>${project.build.directory}/jaxws/stale/wsdl.ECadDocumentServiceWSDL.done</staleFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaDirectory>${basedir}/src/main/resources/META-INF/xsd</schemaDirectory>
                    <packageName>be.fgov.health.ecad.xmlstructure</packageName>
                <outputDirectory>${basedir}/target/generated/java</outputDirectory>
            </configuration>
        </plugin> 

我在项目中使用那些生成的类。 如果我然后执行“右键单击 - &gt; maven - &gt;清理”+“右键单击 - &gt; maven - &gt;安装”一切正常。 但是当我运行mvn clean install -DskipTest = true时,maven无法找到生成的源代码。我已经停留了好几个小时而且找不到它。 (在Eclipse btw中执行此操作)

编辑:

刚刚想出以下内容:如果我删除了第二个插件(由xsd生成)我将不会收到任何错误..如果我把所有使用thoes生成的代码放在注释ofc中。

另一个编辑:

我已经从jaxb生成改变了outputDirectory,现在它正在工作。任何人都可以解释为什么它不能与wsimport位置相同吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,jaxb2-maven-plugin会在将生成的类放入其中之前删除outputDirectory

您可以使用属性clearOutputDir控制此行为。您的插件配置如下:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>xjc</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <schemaDirectory>${basedir}/src/main/resources/META-INF/xsd</schemaDirectory>
        <packageName>be.fgov.health.ecad.xmlstructure</packageName>
        <outputDirectory>${basedir}/target/generated/java</outputDirectory>
        <clearOutputDir>false</clearOutputDir>
    </configuration>
</plugin>