如何管理非托管Eclipse格式配置文件?

时间:2011-03-10 21:17:28

标签: eclipse formatter

我们的项目有一个“非托管配置文件”和保存时自动配置。我希望能够修改此非托管配置文件的设置,并能够将它们重新检入版本控制。

Eclipse的帮助文档非常无益(“不允许更改此类配置文件,只有配置文件的创建者(经理)可以更改它。”)。

3 个答案:

答案 0 :(得分:4)

问题是托管配置文件实际存储在工作区而不是项目中。当您进行项目特定更改(例如选择其他配置文件)时,会将设置推送到项目中。但是项目中的设置与配置文件中的设置(在工作区中)不同。

目前eclipse没有能力反过来执行此操作。也就是说,无法从项目文件夹中获取设置以在工作区中创建配置文件。实际上,“非托管配置文件”是您丢失源代码的配置文件。

我发现对配置文件进行反向工程的最简单方法是生成可以导入的XML配置文件(在格式化程序设置下 - >导入按钮)

对项目中的设置进行反向工程;我写了以下程序。它从项目文件夹中读取设置并将其作为XML文件写出:

import java.io.*;



public class ExtractFormatter {

    public static void main( String args[] ) throws IOException {
        if (args.length < 2)
            throw new RuntimeException("No arguements specified; expected <project folder> <output file>");

        File inFile = new File(args[0]);
        File outFile = new File(args[1]);

        BufferedReader reader = new BufferedReader(new FileReader(new File(inFile,
                ".settings/org.eclipse.jdt.core.prefs")));
        PrintWriter writer = new PrintWriter(outFile);
        writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>");

        // Retain the date from the file as a comment
        String line = reader.readLine();
        writer.println("<!-- Exported from " + inFile + " -->");
        writer.println("<!-- " + line + " -->");

        writer.println("<profiles version=\"12\">");
        writer.println("<profile kind=\"CodeFormatterProfile\" name=\"" + inFile.getName()
                + "\" version=\"12\">\")");


        // Now read every setting for the formatter and write it out as an XML tag.
        for (line = reader.readLine(); line != null; line = reader.readLine()) {
            if (line.startsWith("org.eclipse.jdt.core.formatter.")) {
                String[] parts = line.split("=", 2);
                writer.println("<setting id=\"" + parts[0] + "\" value=\"" + parts[1] + "\" />");
            }
        }

        writer.println("</profile>");
        writer.println("</profiles>");

        reader.close();
        writer.close();
    }
}

答案 1 :(得分:4)

我不确定这是否允许您将您的个人资料检入版本控制,但以下过程将允许您在已签出源代码的任何计算机上编辑您的个人资料。

要编辑您的配置文件,您必须在Eclipse中重新创建配置文件,您可以按照以下步骤轻松完成:

  • 点击&#34;新建...&#34;
  • 创建新的个人资料
  • 为新配置文件指定与现有非托管配置文件相同的名称。
  • 在单击“确定”之前,请确保在“#34;使用以下配置文件初始化设置”中选择了非托管配置文件&#34;下拉列表。

这将允许您重新创建配置文件,并允许您像往常一样在Eclipse中修改它。

注意:此过程适用于Eclipse Indigo

答案 2 :(得分:2)

当您拥有非托管配置文件时,Eclipse应在项目目录中放置.settings文件夹。到目前为止,我发现更改设置的唯一方法是进入项目中的.settings文件夹并手动编辑那里的.prefs文件。