如何在Eclipse中为自动配置maven项目中的Checkstyle

时间:2011-12-02 17:21:18

标签: java eclipse maven checkstyle m2e

我有一个maven-multi项目,当我从它创建一个新的eclipse项目时(来自SCM的M2E 1.0“Checkout Maven项目”)我希望自动为该项目配置eclipse checkstyle插件。

因此,我在父pom的maven-eclipse-plugin部分添加了<pluginManagement>,并将其配置为生成.checkstyle文件以及其他项目性质CheckstyleNature。在模块中,我在构建部分添加了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>

3 个答案:

答案 0 :(得分:5)

Can I Configure m2eclipse through pom.xml?中有关于此主题的详细解答:

Eclipse Checkstyle插件的完全自动配置只能通过ProjectConfigurator实现,例如: m2e-code-qualitym2e-extensions

对于版本1.0的m2e,您可以通过m2e市场在Preferences-&gt; Maven-&gt; Discovery-&gt;“Open Catalog”下安装它们。有关详细信息,请参阅bug tracking for integration of m2e-code-quality into the m2e marketplace

即使对于FindBugs和Sonar,也有基于AntRun和XMLTask的解决方案。结帐后只需手动触发一次。

答案 1 :(得分:4)

maven eclipse插件与eclipse的m2e插件不同,我假设你正在尝试使用它。基本上你不应该同时使用两者。

您可以从命令行使用mvn eclipse:eclipse生成项目文件,然后您可以将项目导入到eclipse中。 M2e的工作方式非常不同,而是在将项目导入为maven插件时使用pom文件。可能你想要的是配置checkstyle插件,希望eclipse会选择设置。同样适用于findbugs和其他maven插件。

但是,我实际上更喜欢使用mvn eclipse:eclipse并没有按预期实际验证上述工作。 M2e对我来说太浪费时间了,似乎经常出错做错事。我特别讨厌它如何习惯在命令行与maven交互后基本上重建所有内容。但很多人似乎都喜欢m2e。

答案 2 :(得分:1)

必须安装“Checkstyle m2e”连接器

  

将配置从maven-checkstyle-plugin应用到eclipse checkstyle插件

在window \ preferences \ Maven \ Discover \ Open Catalog

当然,必须更改pom,以便配置检查样式插件,而不是eclipse插件。

不幸的是它不适合我! (我不会删除答案,因为它可能适用于其他人。)