Java 为什么Maven生成的源代码没有被编译?

Java 为什么Maven生成的源代码没有被编译?,java,maven,maven-3,Java,Maven,Maven 3,我有一个插件,它在target/generatedsources/wrappers目录下生成源代码。它连接到生成源阶段,如下所示: mygroupid myartifactid 生成源 xml2java 问题是,当我使用mvndeploy时,.class文件将不会放在jar中。我在那里看到了所有.java文件,但没有.class 我阅读了关于这个问题的所有问题,但不知道如何解决这个问题。我使用的是Maven 3.0.x 构建助手插件确实解决了这个问题。谢谢@Joe的评论 <plugin

我有一个插件,它在
target/generatedsources/wrappers
目录下生成源代码。它连接到生成源阶段,如下所示:


mygroupid
myartifactid
生成源
xml2java
问题是,当我使用
mvndeploy
时,
.class
文件将不会放在jar中。我在那里看到了所有
.java
文件,但没有
.class


我阅读了关于这个问题的所有问题,但不知道如何解决这个问题。我使用的是Maven 3.0.x

构建助手插件确实解决了这个问题。谢谢@Joe的评论

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>${project.build.directory}/generated-sources/wrappers</source>
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>

org.codehaus.mojo
构建助手maven插件
生成源
添加源
${project.build.directory}/generated sources/wrappers

如果您自己编写了插件,您可以通过编程将包含生成源的路径添加到maven源路径中

@Mojo(name=“generate”)
公共类MyCodegenMojo扩展了AbstractMojo{
@参数(defaultValue=“${project}”)
私人马文项目;
@凌驾
public void execute()抛出MojoExecutionException,MojoFailureException{
//您的生成器代码
project.addCompileSourceRoot(“路径/到/您的/生成的/源”);
}
}

例如,raml-jaxrs-codegen插件使用这种技术。有关更多详细信息,请参阅。

链接问题的答案还提到了相同的
构建助手maven插件
。事实上,Maven 2的所有功能都可以在Maven 3中使用。这就是所有这些的原因。非常感谢你这么重要的留言!它节省了我很多时间!