Ich habe ein Plugin, das Quellen im Verzeichnis target/generated-sources/wrappers
Generiert. Es ist wie folgt in die Erzeugungsquellenphase verkabelt:
<plugin>
<groupId>mygroupid</groupId>
<artifactId>myartifactid</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>xml2Java</goal>
</goals>
</execution>
</executions>
</plugin>
Das Problem ist, wenn ich mvn deploy
Verwende, werden die .class
- Dateien nicht in das Glas gelegt. Ich sehe dort alle .Java
- Dateien, aber keine .class
.
Ich habe alle Probleme rund um dieses Problem gelesen, konnte aber nicht herausfinden, wie das Problem gelöst werden kann. Ich benutze Maven 3.0.x.
Das Build-Helfer-Plugin hat das Problem tatsächlich gelöst. Danke @Joe für den Kommentar.
<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>
Wenn Sie das Plugin selbst geschrieben haben, können Sie den Pfad mit den generierten Quellen programmgesteuert zu den Quellenpfaden des Maven hinzufügen.
@Mojo(name = "generate")
public class MyCodegenMojo extends AbstractMojo {
@Parameter(defaultValue = "${project}")
private MavenProject project;
@Override
public void execute() throws MojoExecutionException, MojoFailureException{
// your generator code
project.addCompileSourceRoot("path/to/your/generated/sources");
}
}
Beispielsweise verwendet das Raml-Jaxrs-Codegen-Plugin diese Technik. Siehe RamlJaxrsCodegenMojo.Java für weitere Details.