介绍
格式化程序、代码模板等可以作为项目特定设置存储在文件夹中.settings/
。您不一定需要在工作区中重新导入 Formatter 。
您可以结合使用项目特定设置在项目中svn:externals
“注入”格式化程序、代码模板等。
svn:外部:
有时构建一个由许多不同的结帐组成的工作副本很有用。例如,您可能希望不同的子目录来自存储库中的不同位置,或者可能完全来自不同的存储库。
项目
- 我们有一个名为的 java 项目
com.xyz.codeconventions
,我们在其中添加了项目特定的格式化程序和代码模板。该项目受版本控制。
- 对于所有其他项目,我们定义一个
svn:externals
属性来“注入”.settings/
项目com.xyz.codeconventions
中的文件夹(这是存储项目特定数据的文件夹)
- 如果您现在想要更改格式化程序,您可以编辑项目
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
文件。
来源