4 Stimmen

Wie kann man die Standardeigenschaften in der Maven-Erweiterung ändern?

Ich möchte ein Maven-Plugin (Erweiterung) zu schreiben, die Lebenszyklen für Javascript-Projekte implementiert, so dass Projekte mit einer pom.xml wie diese kompiliert werden können:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org
  <modelVersion>4.0.0</modelVersion>

  <groupId>de.ailis.maven.javascript</groupId>
  <artifactId>demo</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <name>Maven JavaScript Demo Project</name>
  <packaging>javascript</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>de.ailis.maven.plugins</groupId>
        <artifactId>maven-javascript-plugin</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <extensions>true</extensions>
      </plugin>
    </plugins>
  </build>

</project>

Ich habe bereits erfolgreich ein Plugin mit einer components.xml Datei, die die Lebenszyklen definiert, damit ich meine eigenen Mojos während der verschiedenen Phasen aufrufen kann. Es gibt jedoch einige Phasen, für die die Standard-Mojos ausreichend sind, solange ich einige Standardwerte ändern kann. Ich möchte zum Beispiel ein benutzerdefiniertes outputDirectory zum Maven Resources Plugin, so dass die JavaScript-Ressourcen nach target/classes/script-resources anstelle von target/classes . Kann dies im Plugin getan werden, ohne die gesamte Klasse ResourcesMojo zu kopieren und den Standardwert der Eigenschaft dort zu ändern?

-1voto

Montells Punkte 6011

Mojo:

public class MyMojo extends AbstractMojo
{
    private String foo; //filePath

    public void execute()
        throws MojoExecutionException
    {         
        ...
        writeFile(foo)
        ...
    }
}

pom.xml

<plugin>

    <groupId>de.ailis.maven.plugins</groupId>

    <artifactId>maven-javascript-plugin</artifactId>

    <version>1.0.0-SNAPSHOT</version>

    <configuration>

        <foo>script-resources</foo> 

    </configuration>

</plugin>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X