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中使用。这就是所有这些的原因。非常感谢你这么重要的留言!它节省了我很多时间!