我是一个专注于 Eclipse 的小组中的一名 Emacs 用户。一次又一次,代码差异因 Eclipse“组织”或“清理”的导入而变得更大。

我对 Java 中的导入样式没有强烈的看法,但我确实想最小化我们的差异。我能做些什么?

我们使用 Maven2 进行构建;有一个插件可以帮助我吗?可以将 Eclipse 的一部分抽象出来并变成 Maven 插件吗?我目前使用 进口洗涤器 并且遇到了其他一些做同样事情的独立作品。我真正想要的是一个可以与构建集成的 Maven 插件。

除上述情况外,我会将 ImportScrubber 调用放入我的 .git/hooks/post-commit.

有帮助吗?

解决方案

混合实验室 内部使用的美容剂 开放架构软件 项目(一个开源生成器框架)正在做您正在寻找的事情。正如本节中所解释的 博客条目, ,美化器可用作 谷歌代码项目 和它的 文档 描述了一个 Maven 2 插件:

<plugin>
    <groupId>org.hybridlabs</groupId>
    <artifactId>maven-beautifier-plugin</artifactId>
    <executions>
         <execution>
             <goals>
                 <goal>beautify-imports</goal>
             </goals>
         </execution>
     </executions>
    <configuration>
         <!-- Recursively scan for *.java and beautifies imports -->
         <inputDirectory>${pom.basedir}/..</inputDirectory>
         <!--outputDirectory>${pom.basedir}/..</outputDirectory>
         <runBeautifier>true/runBeautifier>
         <runJalopy>false</runJalopy-->
    </configuration>
</plugin>

确实有一种魔力在 源树 但它不匹配 groupId 上面提到的(这有点令人困惑)并且我无法在 maven 的公共存储库中找到该插件。

也许您会更幸运地使用 AndroMDA 插件存储库中提供的版本,如中所述 这个线程 (该插件确实存在于 http://team.andromda.org/maven2/).

插件在下面 org.apache.maven.plugins.maven-beautifier-plugin。它可以用缩写形式运行: mvn beautifier:beautify-imports. 。它也可以通过添加插件声明下的项目POM的一部分运行 <build><plugins>:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-beautifier-plugin</artifactId>
    <version>1.0</version>
    <executions>
        <execution>
            <goals>
                <goal>beautify-imports</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <inputDirectory>${pom.basedir}/target/src</inputDirectory>
    </configuration>
</plugin>

或者联系该项目的作者(例如通过 推特 或通过邮件)。

其他提示

我想在座的各位(Eclipse中,Emacs的或任何用户)应该使用类似老爷车,其支持的的Eclipse Maven的。这种方式,它变得不相干,因为它已经通过美化打印机在检查代码的一部分运行的代码是只要修改都说 - 我不知道,如果老爷车支持组织超越这些分拣达进口

你的店铺是否有进口应该如何组织代码的标准吗?如果是这样,那么你的运气了。最小化的diff是一个小的牺牲在实现增量代码的改进。

我还发现一种 ImportScrubber插件。不能作为尚未证明其质量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top