2011-12-02 19 views
7

Ho un progetto maven-multi, quando creo un nuovo progetto eclipse da esso (tramite M2E 1.0 "Checkout Maven Project di SCM) Voglio che il plugin checkstyle di eclissi sia configurato per quel progetto automaticamente.Come configurare Checkstyle in Eclipse per un progetto Maven automaticamente

così ho aggiunto il maven-eclipse-plugin nella sezione del pom genitore <pluginManagement> e configurato per generare .checkstyle file così come la natura ulteriore progetto di CheckstyleNature. Negli pon e moduli ho aggiunto il nome del maven-eclipse-plugin nella build sezione.Ma quando eseguo il checkout del progetto non succede nulla, il file non viene generato e la natura non viene aggiunta

Quindi penso di fare qualcosa di completamente sbagliato, ma come è fatto correttamente?


Parent pom - sezione di gestione plugin:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <version>2.8</version> 
    <configuration> 
     <downloadSources>true</downloadSources> 
     <downloadJavadocs>false</downloadJavadocs> 
     <wtpversion>2.0</wtpversion> 
     <additionalBuildcommands> 
      <buildCommand> 
       <name>org.eclipse.ajdt.core.ajbuilder</name> 
       <arguments> 
        <aspectPath>org.springframework.aspects</aspectPath> 
       </arguments> 
      </buildCommand> 
      <buildCommand> 
       <name>org.springframework.ide.eclipse.core.springbuilder</name> 
      </buildCommand> 
     </additionalBuildcommands> 
     <additionalProjectnatures> 
      <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> 
      <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
      <projectnature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</projectnature> 
     </additionalProjectnatures> 
     <additionalConfig> 
      <file> 
       <name>.checkstyle</name> 
       <content> 
<![CDATA[ 
<?xml version="1.0" encoding="UTF-8"?> 
<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false"> 
    <fileset name="all" enabled="true" check-config-name="My Checkstyle rules" local="false"> 
    <file-match-pattern match-pattern="." include-pattern="true"/> 
    </fileset> 
    <filter name="FilesFromPackage" enabled="true"> 
    <filter-data value="target" /> 
    <filter-data value="src/main/resources"/> 
    <filter-data value="src/test/java"/> 
    <filter-data value="src/test/resources"/> 
    <filter-data value="src/main/webapp" /> 
    </filter> 
</fileset-config> 
]]> 
       </content> 
      </file> 
     </additionalConfig> 
    </configuration> 
</plugin> 

modulo pom - plugin sezione:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
</plugin> 

risposta

5

Non ci sono risposte dettagliate a questa discussione in Can I Configure m2eclipse through pom.xml?:

configurazione completamente automatica della Eclipse Checkstyle plugin può essere raggiunto solo con un ProjectConfigurator, per esempio m2e-code-quality o m2e-extensions.

Per m2e a partire dalla versione 1.0, è possibile installarli tramite il marketplace m2e in Preferenze-> Maven-> Rilevamento -> "Apri catalogo". Per dettagli, vedere bug tracking for integration of m2e-code-quality into the m2e marketplace.

C'è anche una soluzione basata su AntRun e XMLTask anche per FindBugs e Sonar. Ha bisogno di attivazione manuale solo una volta dopo il checkout.

+0

suona molto bene, non l'ho ancora provato, ma dalla descrizione del progetto è quello che mi serviva – Ralph

+0

Sfortunatamente, il connettore [m2e-code-quality non è nel catalogo di m2e 1.4 (Kepler)] (https: // github.com/m2e-code-quality/m2e-code-quality/issues/25). – oberlies

+0

la home page di m2e-code-quality (http://m2e-code-quality.github.io/m2-code-quality/) sembra essere piuttosto vecchia, ma la sua pagina di mercato https: //marketplace.eclipse. org/content/m2e-code-quality mostra che il progetto è ancora vivo – Ralph

4

The Maven Eclipse plugin non è la stessa cosa che il plugin M2E per Eclipse, che presumo tu stia cercando di usare. Fondamentalmente non dovresti usare entrambi allo stesso tempo.

È possibile utilizzare mvn eclipse: eclipse dalla riga di comando per generare file di progetto e quindi è possibile importare i progetti in eclissi. M2e funziona in modo molto diverso e utilizza invece i file pom quando si importano progetti come plugin Maven. Probabilmente quello che vuoi è configurare il plugin checkstyle e spero che eclipse possa prendere le impostazioni. Lo stesso per findbugs e altri plugin Maven.

Tuttavia, in realtà preferisco usare mvn eclipse: eclipse e non ho effettivamente verificato quanto sopra funziona come previsto. M2e è semplicemente una perdita di tempo per me e sembra andare fuori e fare spesso le cose sbagliate. Detesto in particolare il modo in cui ha l'abitudine di ricostruire praticamente tutto dopo un'interazione a riga di comando con Maven. Ma a molte persone sembra piacciono i m2e.

+1

Hai ragione, i plug-in sono diversi. Ma userò M2e invece del plugin di eclipse. – Ralph

+0

A meno che questa risposta non sia pertinente spiegando la differenza tra il plugin Eclipse (m2e) e il plugin Maven (maven-eclipse-plugin), sembra che l'integrazione tra il sistema di build e l'IDE sia stata migliorata dall'ultima versione (dal 2013 al 2015 in particolare). In realtà vorrei raccomandare M2E. –

+2

Era rilevante perché la domanda originale riguarda m2e ma l'xml di esempio configura il plugin di eclissi maven, che chiaramente non funzionerà; come ho sottolineato. Il mio ultimo paragrafo è stato rilevante quando ho fornito questa risposta poiché m2e era piuttosto instabile e difficile da gestire in quel momento. Da allora le cose sono migliorate notevolmente e ora uso anche m2e. –

1

Bisogna installare il connettore "Checkstyle M2E"

applica modulo di configurazione del Maven-checkstyle-plugin per il plugin di Eclipse checkstyle

sotto la finestra \ preferenze \ Maven \ Discover \ Apri catalogo

E ovviamente si deve cambiare il pom, in modo che sia configurato il plug-in di stile di controllo, invece del plug-in di eclissi.

Purtroppo non funziona per me! (Non voglio cancellare la risposta, perché si può lavorare per qualcun altro.)

+0

C'è un modo per far scattare automaticamente questa scoperta? –

+0

@ Thorbjørn Ravn Andersen: non lo so. Ma sembra una buona domanda. – Ralph

Problemi correlati