2011-12-02 141 views
7

我有一個maven-multi項目,當我從它創建一個新的eclipse項目時(通過M2E 1.0的「Checkout Maven Project from SCM)我希望eclipse checkstyle插件是配置該項​​目自動。如何在Eclipse中自動爲Maven項目配置Checkstyle

所以我添加在父POM的<pluginManagement>部分maven-eclipse-plugin並將其配置爲生成.checkstyle文件以及附加的項目性質CheckstyleNature。在MODUL勁歌我在構建添加的maven-eclipse-plugin的名字但是當我簽出項目時什麼也沒有發生,文件沒有生成,並且沒有添加文件。

所以我認爲我在做一些完全錯誤的事情,但是它是如何做的正確的?


父POM - 插件管理部分:

<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> 

模塊POM - 插件部分:

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

回答

5

對於這個話題詳細解答在Can I Configure m2eclipse through pom.xml?

了Eclipse的Checkstyle插件的全自動配置只能用ProjectConfigurator來實現,例如m2e-code-qualitym2e-extensions

對於版本1.0以上的m2e,您可以在首選項 - > Maven-> Discovery - >「打開目錄」下通過m2e市場安裝它們。詳情請參閱bug tracking for integration of m2e-code-quality into the m2e marketplace

即使對於FindBugs和Sonar,也有基於AntRun和XMLTask的解決方案。結賬後只需要手動觸發一次。

+0

聽起來很不錯,我沒有測試過,但弗朗的PROJEKT描述這正是我需要的 – Ralph

+0

不幸的是,[M2E碼品質連接器不M2E 1.4(開普勒)的目錄(https://開頭github.com/m2e-code-quality/m2e-code-quality/issues/25)。 – oberlies

+0

的M2E-代碼質量主頁(http://m2e-code-quality.github.io/m2e-code-quality/)接縫是很老,但它的市場網頁HTTPS://marketplace.eclipse。 org/content/m2e-code-quality表明該項目還活着 – Ralph

4

Maven的Eclipse插件是不是同樣的事情M2E Eclipse插件,我假設你正在嘗試使用。基本上你不應該同時使用兩者。

您可以使用mvn eclipse:eclipse從命令行生成項目文件,然後您可以將項目導入到eclipse中。 M2e工作原理非常不同,當您將項目導入爲Maven插件時,它會使用pom文件。可能你想要的是配置checkstyle插件,並希望日食會拿起設置。 findbugs和其他maven插件也一樣。但是,我實際上更喜歡使用mvn eclipse:eclipse,並沒有按照預期驗證上述工作。 M2e對我來說太浪費時間了,似乎會頻繁地做錯事情。我特別討厭它在與maven進行命令行交互之後基本上重建所有東西的習慣。但很多人似乎都喜歡m2e。

+1

你是對的,插件是不同的。但我會用M2e代替eclipse插件。 – Ralph

+0

除非這個答案是相關的地名釋義Eclipse插件(M2E)和Maven插件(Maven的Eclipse的插件)之間的差異,似乎構建系統和IDE之間的整合是真正從最新版本的改進(2013年至2015年尤其是)。我真的會推薦M2E。 –

+2

這是相關的,因爲最初的問題是關於m2e,但示例xml配置了maven eclipse插件,這顯然不起作用;正如我指出的那樣。當我提供這個答案時,我的最後一段是相關的,因爲m2e當時相當不穩定和棘手。從那時起,事情已經有了很大的改善,我現在也使用m2e。 –

1

人們必須安裝 「的Checkstyle M2E」 連接器

適用構造形成行家-的CheckStyle-插件蝕CheckStyle的插件

在窗口\偏好\ Maven的\查詢\開放式目錄

當然,我們必須更改pom,以便配置check樣式插件,而不是eclipse插件。

不幸的是,它不適合我! (我不會刪除的答案,因爲它可以爲別人工作的人。)

+0

是否有任何方法讓這個發現自動觸發? –

+0

@ThorbjørnRavn Andersen:我不知道。但這聽起來像一個很好的問題。 – Ralph

相關問題