12

我们在项目中依赖 Eclipse 格式化程序来为我们强制执行格式化约定。它工作得很好,我们真的很喜欢它。

我们将格式化程序文件与我们的项目一起保存在源代码控制中,并要求每个人将此格式化程序导入 Eclipse。唯一严重的问题是,每当有人修改格式化程序并提交更改时,每个团队成员都需要手动“重新导入”格式化程序。而且很容易忘记这样做,因此我们经常在团队中使用不同版本的格式化程序。

有没有办法让 Eclipse 在更新格式化程序文件时自动使用新版本的格式化程序?(我的意思是,我们可以对 Eclipse 说“这是格式化程序文件的路径,总是使用这个文件的当前版本作为格式化程序”吗?)那太好了!

有任何想法吗?

4

2 回答 2

14

介绍

格式化程序、代码模板等可以作为项目特定设置存储在文件夹中.settings/。您不一定需要在工作区中重新导入 Formatter 。

您可以结合使用项目特定设置在项目中svn:externals“注入”格式化程序、代码模板等。

svn:外部:

有时构建一个由许多不同的结帐组成的工作副本很有用。例如,您可能希望不同的子目录来自存储库中的不同位置,或者可能完全来自不同的存储库。

项目

  1. 我们有一个名为的 java 项目com.xyz.codeconventions,我们在其中添加了项目特定的格式化程序和代码模板。该项目受版本控制。
  2. 对于所有其他项目,我们定义一个svn:externals属性来“注入”.settings/项目com.xyz.codeconventions中的文件夹(这是存储项目特定数据的文件夹)
  3. 如果您现在想要更改格式化程序,您可以编辑项目com.xyz.codeconventions并使用svn commit来提交更改。团队必须svn update在所有项目上获得最新版本的代码格式化程序。

配置

对于应该使用此格式化程序的所有项目,您必须定义一个 svn:externals 属性。

com.xyz.project1 的示例:

核心价值
---- ------
svn:externals http://path/to/com.xyz.codeconventions/.settings .settings

在 Eclipse(在我的情况下是 Subversive)中,您可以使用Team -> Set property....

存储库布局

在我们的案例中,存储库结构如下所示:

<根>
   |
   +-- com.xyz.project1 # (svn:externals -> <root>/codeconventions/.settings .settings)
   | |
   | +-- 源代码
   | +-- <...>
   +-- com.xyz.project2 # (svn:externals -> <root>/codeconventions/.settings .settings)
   | |
   | +-- 源代码
   | +-- <...>
   +-- com.xyz.codeconventions
        |
        +-- .settings #(这个文件夹将在 project1 和 project2 中“注入”)
             |
             +-- org.eclipse.jdt.core.prefs
             +-- org.eclipse.jdt.ui.prefs

附加评论/限制

  • 这种方法仅适用于svn用户,但如果您使用git类似于 svn:externals 的名称Submodules
  • 确保 project1 和 project2 中没有.settings/-folder,因为svn:externals无法覆盖现有文件。
  • 如果您的 java 项目需要完全不同的格式化程序或文件.settings/夹中的不同文件,那么这种方法可能不是您想要的。我们的项目总是有相同的.settings文件。

来源

于 2013-02-13T13:17:42.693 回答
0

如果我正确理解你的问题,你想要:

  1. 所有团队成员共享相同的 checkstyle 配置
  2. 任何更改后,所有团队成员都会自动使用最新版本的配置

我的猜测是,每次修改时,你们每个人都会手动将配置导入到 eclipse 中。

您可以将 eclipse 配置为使用远程配置文件,而不是将文件直接导入 eclipse。

eclipse checkstyle首选项

该配置将适用于 eclipse 下的所有项目,并且将是最新的。整个过程在此处使用团队通用 Checkstyle 规则进行说明。这需要所有团队成员设置一次 eclipse。

另一方面,如果您使用的是maven ,则可以使用 maven-eclipse-plugin 来描述要使用的 checkstyle 文件。只需将 maven 项目导入 eclipse 即可完成配置。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
    <additionalBuildcommands>
        <buildcommand>net.sf.eclipsecs.core.CheckstyleBuilder</buildcommand>
    </additionalBuildcommands>
    <additionalProjectnatures>
        <projectnature>net.sf.eclipsecs.core.CheckstyleNature</projectnature>
    </additionalProjectnatures>
    <additionalConfig>
        <file>
            <name>.checkstyle</name>
            <location>${URL}/eclipse-checkstyle.xml</location>
        </file>
    </additionalConfig>
</configuration>
....

您可以在以下文章Maven Checkstyle 和 Eclipse中查看 maven 配置的完整详细信息

于 2013-02-15T14:45:46.420 回答