2011-03-10 15 views
6

Nuestro proyecto tiene un "perfil no administrado" y tiempo de autoformato de tiempo de guardado. Me gustaría poder modificar la configuración de este perfil no administrado y poder volver a controlarlo.¿Cómo administro un perfil de formato de Eclipse no administrado?

Los documentos de ayuda de Eclipse son bastante inútiles ("No está permitido cambiar ese perfil, solo el creador (administrador) del perfil puede cambiarlo").

Respuesta

2

Eclipse debe poner una carpeta .settings en su directorio de proyecto cuando tenga un perfil no administrado. La única forma que he encontrado para cambiar la configuración hasta ahora es ir a la carpeta .settings dentro del proyecto y editar manualmente los archivos .prefs.

+0

Esa parece ser la respuesta. Lo que he estado haciendo para evitar esto es realizar ediciones en un perfil personalizado en otro proyecto, exportarlo y observar qué elementos cambiaron y hacer los mismos cambios en la copia de .settings. – magneticMonster

4

El problema es que un perfil administrado realmente se almacena en su espacio de trabajo, no en su proyecto. Los ajustes se insertan en su proyecto cuando realiza cambios específicos del proyecto, como la selección de un perfil diferente. Pero las configuraciones en el proyecto son de un formato diferente al del perfil (en el espacio de trabajo).

En la actualidad, eclipse no tiene la capacidad de realizar esto al revés. Es decir, no puede tomar configuraciones de la carpeta del proyecto para crear un perfil en el área de trabajo. Efectivamente, un "Perfil no administrado" es un perfil en el que ha perdido el código fuente.

La forma más sencilla que he encontrado para realizar una ingeniería inversa del perfil es generar un archivo de perfil XML que se puede importar (en la configuración del formateador -> botón de importación).

Para realizar una ingeniería inversa de la configuración de un proyecto; Escribí el siguiente programa. Se lee la configuración de una carpeta de proyecto y las escribe como un archivo 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(); 
    } 
} 
3

No estoy seguro si esto le permitirá comprobar su perfil de nuevo a control de versiones, pero el siguiente proceso permitirá usted puede editar su perfil en cualquier computadora que tenga la fuente desprotegida.

Para editar su perfil, usted tiene que crear el perfil en Eclipse, que se puede hacer fácilmente de la siguiente manera:

  • crear un nuevo perfil haciendo clic en "Nuevo ..."
  • dar al nuevo perfil el mismo nombre que su perfil no administrado existente.
  • Antes de hacer clic en Aceptar, asegúrese de haber seleccionado su perfil no administrado en la lista desplegable "Inicializar las configuraciones con el siguiente perfil".

Esto le permitirá recrear el perfil, y le permitirá modificarlo en Eclipse, como es normal.

Nota: Este proceso funciona con Eclipse Indigo

Cuestiones relacionadas