3 Stimmen

Entwicklung eines Maven-Plugins, wie man Bitkeeper-Dateien ausschließt

Ich schreibe ein Maven-2-Plugin und möchte alle Java-Dateien ausschließen, die mit dem von mir verwendeten Quell-Repository BitKeeper zusammenhängen. Diese Dateien befinden sich in Verzeichnissen namens SCCS. Bis jetzt war ich nicht erfolgreich.

Wenn ich das maven-compile-plugin mit excludes data hinzufüge, funktioniert es (die BitKeeper-Dateien werden ausgeschlossen), wenn ich mvn compiler:compile ausführe. Aber dies ist nicht an die Kompilierungsphase gebunden. Wenn ich also mvn compile ausführe, scheitert es beim Versuch, eine quellkontrollspezifische Java-Datei zu kompilieren. Jede Hilfe oder jeder Hinweis ist willkommen.

Eine weitere Anmerkung: Alles funktioniert perfekt, wenn ich das Paket von "maven-plugin" auf "jar" ändere, was ich natürlich nicht dauerhaft tun kann, da ich versuche, ein Maven-Plugin zu schreiben.

Es tut mir leid, wenn diese Frage bereits anderswo beantwortet wurde. Ich habe mehrere Stunden lang hier und in den Maven-Dokumenten gesucht, aber alles zu diesem Thema scheint sich auf das Schreiben von Code zu beziehen, der in Jars verpackt wird, nicht auf Maven-Plugins.

Hier ist meine pom.xml:

<project>

<modelVersion>4.0.0</modelVersion>
<groupId>com.mycomp.mygroup</groupId>
<artifactId>special-persistence-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0-SNAPSHOT</version>
<name>Special Persistence Plugin</name>

<dependencies>
  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>2.0</version>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <encoding>UTF-8</encoding>
        <excludes>
           <exclude>**/SCCS/**/*.java</exclude>
        </excludes>
        <phase>compile</phase>
         <goals>
           <goal>compiler:compile</goal>
         </goals>         
       </configuration>
     </plugin>
  </plugins>
</build>

</project>

Vielen Dank an alle, die Ideen zu diesem Thema haben,

-Denali

1voto

Pascal Thivent Punkte 548176

Eigentlich, plugin:descriptor wird während der generate-resources Phase, die vorausgeht compile (siehe die Lebenszyklus-Referenz für eine Verpackung des Typs maven-plugin ).

Wie auch immer, das Problem hier ist, dass unabhängig von der Ursache des Fehlers (selbst wenn das Mojo in der Lage gewesen wäre, die p.STSMojo.java die einen unerwarteten Header enthalten muss, erlaubt das Plugin nicht, dass ein Mojo zweimal vorhanden ist), die Maven Plugin Plugin nicht Unterstützung beinhaltet/ausschließt (siehe MPLUGIN-15 und gehen Sie zur Abstimmung) und ich bin mir nicht sicher, ob Sie das Problem durch Konfiguration lösen können.

Vielleicht können Sie den Plugin-Deskriptor generieren, während der Code nicht unter Versionskontrolle steht, und den Deskriptor in /META-INF/maven/plugin.xml und konfigurieren Sie das Maven-Plugin so, dass die Deskriptor-Generierung übersprungen wird. Aber ich habe das nicht getestet.

Oder vielleicht könnten Sie das Plugin (sauber oder unsauber) reparieren. Aber ich habe nicht auf die Quelle schauen, so kann ich nicht viel über diese sagen.

Oder, und das ist sicherlich nicht die erwartete Antwort, aber immer noch die einfachste, Sie könnten vielleicht ein anderes VCS für Ihr Mojo verwenden (nur für das Mojo, warum nicht parallel zu bitkeeper).

Ich würde mit einem Kommentar zu dem Jira-Problem beginnen (Ihr Anwendungsfall ist absolut gültig und sollte unterstützt werden), vielleicht erhalten Sie dort bessere Ideen.

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