2013-10-16 10 views
5

In meiner pom.xml konfiguriere ich ein Plugin, um bestimmte Protobuf-Dateien in Java-Klassendateien zu konvertieren. Es sieht wie folgt aus:Wie man eine spezifische Konfiguration zu einem Maven-Plugin hinzufügt

<plugin> 
     <groupId>com.github.igor-petruk.protobuf</groupId> 
     <artifactId>protobuf-maven-plugin</artifactId> 
     <version>0.5.3-SNAPSHOT</version> 
     <executions> 
       <execution> 
         <goals> 
           <goal>run</goal> 
         </goals> 
       </execution> 
     </executions> 
     <configuration> 
       <protocCommand>${basedir}/protoc/bin/protoc</protocCommand> 
       <inputDirectories> 
        <inputDirectory>proto</inputDirectory> 
       </inputDirectories> 
     </configuration> 
</plugin> 

Aus dieser Maven die .classpath Datei mit folgendem Eintrag erzeugt:

<classpathentry kind="src" output="target/classes" path="target/generated-sources/protobuf"> 
    <attributes> 
     <attribute name="optional" value="true"/> 
     <attribute name="maven.pomderived" value="true"/> 
    </attributes> 
</classpathentry> 

Was würde ich wie Maven jetzt zu tun ist, ein zusätzliches „Attribut“ Eintrag hinzufügen zu Dieser Klassenpfadeintrag, so dass der Eintrag wie folgt aussieht:

<classpathentry kind="src" output="target/classes" path="target/generated-sources/protobuf"> 
    <attributes> 
     <attribute name="optional" value="true"/> 
     <attribute name="maven.pomderived" value="true"/> 
     <attribute name="ignore_optional_problems" value="true"/> 
    </attributes> 
</classpathentry> 

Ich werde keine Warnungen von diesem Teil des Codes erhalten.

Im Moment weiß ich einfach nicht, wie das geht. Welche Dateien oder Einstellungen muss ich bearbeiten? Wo in Eclipse kann ich das tun?
Aber das ist mehr oder weniger eine allgemeine Frage, wie Maven modifiziert werden kann angepasst Einträge enthalten, da wir noch einige Punkte, wo wir in der kundenspezifischen Dinge hinzuzufügen.

in Ihrem Beispiel

Antwort

0

Eclipse-Konfiguration produziert wollen würde, von m2eclipse 's Projektkonfigurator und ich bin ziemlich sicher, dass es solche Funktion jetzt nicht unterstützt. Sie können jedoch versuchen, eine Verbesserungsanfrage zu stellen. Siehe http://www.eclipse.org/m2e/support/

0

Nicht sicher, ob mit Maven möglich ist. Sie müssen das ant-Plugin von maven aufrufen. Fügen Sie die benutzerdefinierte Logik hinzu, um die zusätzliche Zeile in Ant-Task hinzuzufügen.

Fügen Sie das Ant-Plugin unter Ihrem Plugin hinzu, um sicherzustellen, dass das ant-Plugin nach Ihrem Plugin in derselben Phase aufgerufen wird. Stellen Sie sicher, dass das ant-Plugin die gleiche Phase wie Ihr Plugin hat.

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
     <phase><!--the same phase as protobuf-maven-plugin phase--></phase> 
     <configuration> 
      <tasks> 

      <!-- 
       Add ant xmltask or ant other task to add your line to file 
      --> 

      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
+0

Ich werde ganz bestimmt nicht Ant und Maven mischen. – Sebastian

+0

Nun, in diesem Fall würde ich vorschlagen, erstellen Sie Ihre eigenen benutzerdefinierten Maven-Plugin. Siehe diesen Link zum Erstellen eines Maven Plugins. http://maven.apache.org/guides/plugin/guide-java-plugin-development.html – ABose

Verwandte Themen