Wie für generierte Quellen in Maven erstellen Ordner?
Frage
Ich habe Quellen wsimport zu erzeugen und ich nehme an, dass es zu / target / erzeugt-Quellen / wsimport anstatt / src / main / java gehen sollte.
Das Problem ist, dass wsimport Bedürfnisse Ordner vor der Ausführung erstellt Ziel und es funktioniert nicht. Kann ich zum ersten Mal mit einer beliebigen Maven-Plugin, das dir erstellen. Ich kann es tun Ameise verwenden, aber ich ziehe es in POM zu halten.
Lösung
Ich habe Quellen wsimport zu erzeugen und ich nehme an, dass es zu / target / erzeugt-Quellen / wsimport anstatt / src / main / java gehen sollte.
Dies ist eine richtige Annahme.
Das Problem ist, dass wsimport Bedürfnisse Ordner vor der Ausführung erstellt Ziel und es funktioniert nicht. Kann ich zum ersten Mal mit einer beliebigen Maven-Plugin, das dir erstellen. Ich kann es tun Ameise verwenden, aber ich ziehe es in POM zu halten.
Ich habe nie bemerkt, dieses Problem (und es als Fehler betrachten würde, hat ein Plugin kümmern solche Dinge).
Das seltsame ist, dass WsImportMojo
scheint zu tun, was durch den Aufruf von File#mkdirs()
:
public void execute()
throws MojoExecutionException
{
// Need to build a URLClassloader since Maven removed it form the chain
ClassLoader parent = this.getClass().getClassLoader();
String originalSystemClasspath = this.initClassLoader( parent );
try
{
sourceDestDir.mkdirs();
getDestDir().mkdirs();
File[] wsdls = getWSDLFiles();
if(wsdls.length == 0 && (wsdlUrls == null || wsdlUrls.size() ==0)){
getLog().info( "No WSDLs are found to process, Specify atleast one of the following parameters: wsdlFiles, wsdlDirectory or wsdlUrls.");
return;
}
...
}
...
}
Könnten Sie zeigen, wie Sie rufen Sie das Plugin und deren Konfiguration?
Andere Tipps
Versuchen Sie, die add source
Ziel des Build-Helfer-Plugin mit :
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/target/generated/src/wsimport</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>