2008-10-30 23 views
15

Uso eclipse para trabajar en una aplicación que se creó originalmente independientemente de eclipse. Como tal, la estructura de directorios de la aplicación no es eclipsa.Generar mediante programación un proyecto de Eclipse

Quiero generar un proyecto para la aplicación mediante programación. Los archivos .project y .classpath son bastante fáciles de entender, y he aprendido que los proyectos se almacenan en el espacio de trabajo bajo <workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects

Por desgracia, algunos de los archivos de aquí abajo (en particular .location) parecen estar codificado en algún tipo de formato binario Por un presentimiento intenté deserializarlo usando ObjectInputStream - sin dados. Por lo tanto, no parece ser un objeto java serializado.

Mi pregunta es: ¿hay alguna manera de generar estos archivos automáticamente?

Para los curiosos, el error que consigo intentar deserializar el archivo .location es la siguiente:

java.io.StreamCorruptedException: java.io.StreamCorruptedException: invalid stream header: 40B18B81

Actualización: Mi objetivo aquí es ser capaz de reemplazar el asistente de nuevo proyecto Java con un script o programa de línea de comandos. La razón es que la aplicación en cuestión es en realidad una aplicación J2EE/weblogic muy grande, que me gusta dividir en una gran colección de subproyectos (casi 20). Para complicar las cosas, utilizamos clearcase para SCM y creamos una nueva rama para cada lanzamiento. Esto significa que necesito recrear estos proyectos para cada vista de desarrollo (rama) que creo. Esto sucede con la suficiente frecuencia para automatizar.

Respuesta

18

Debería poder lograr esto escribiendo un pequeño plugin de Eclipse. Incluso podría extenderlo a ser una aplicación RCP "sin cabeza" y pasar los argumentos de la línea de comandos que necesita.

El código de barebones para crear un proyecto es:

IProgressMonitor progressMonitor = new NullProgressMonitor(); 
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
IProject project = root.getProject("DesiredProjectName"); 
project.create(progressMonitor); 
project.open(progressMonitor); 

Basta con echar un vistazo al código Eclipse para el asistente Importar proyecto para darle una mejor idea de dónde ir con ella.

+0

Gracias, voy a probar –

+0

Esta forma de crear proyectos funciona en el proyecto de plugin eclipse. ¿Hay alguna manera de crear un proyecto de java desde un proyecto java independiente? significa crear un proyecto de la clase principal simplemente ejecutándolo. Gracias por adelantado. –

+0

¿IProject no se puede resolver a un tipo? –

2

Uso AntEclipse

Puede crear proyectos de eclipse del hormiga.

Cuestiones relacionadas