在Eclipse中自动更新格式化程序

Pio*_*zyk 12 eclipse formatter eclipse-formatter

我们在项目中依赖Eclipse格式化程序来强制执行格式约定.它很棒,我们非常喜欢它.

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

更新格式化程序文件时,有没有办法让Eclipse自动使用新版本的格式化程序?(我的意思是,我们可以只对Eclipse说"这是格式化程序文件的路径,总是使用此文件的当前版本作为格式化程序"?)这会很棒!

有任何想法吗?

jen*_*-na 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的示例:

key                   value
----                  ------
svn:externals         http://path/to/com.xyz.codeconventions/.settings .settings

在Eclipse(在我的情况下是Subversive)中,您可以添加svn特定属性Team -> Set property....

存储库布局

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

 <root>
   |
   +-- com.xyz.project1 # (svn:externals -> <root>/codeconventions/.settings .settings)
   |    |
   |    +-- src
   |    +-- <...> 
   +-- com.xyz.project2 # (svn:externals -> <root>/codeconventions/.settings .settings)
   |    |
   |    +-- src
   |    +-- <...> 
   +-- com.xyz.codeconventions
        |
        +-- .settings  # (this folder will get "injected" in project1 and project2)
             |
             +-- org.eclipse.jdt.core.prefs
             +-- org.eclipse.jdt.ui.prefs

附加评论/限制

  • 此方法仅供svn用户使用git,但如果使用,则会出现与svn:externals类似的名为Submodules的内容.
  • 确保在project1和project2中没有文件.settings/夹,因为svn:externals它无法覆盖现有文件.
  • 如果你有java项目需要完全不同的格式化程序或文件.settings/夹中的不同文件,这种方法可能不是你想要的.我们的项目总是有相同的.settings文件.

来源