2010-05-24 13 views
22

Soy un chico C# tratando de aprender Java. Comprendo la sintaxis y la arquitectura básica de la plataforma Java, y no tengo problemas para hacer pequeños proyectos, pero me gustaría poder descargar algunos proyectos de código abierto para aprender del trabajo de otros. Sin embargo, me encuentro con un obstáculo en el que parece que no puedo encontrar ninguna información.Java equivalente al archivo de la solución VS

Cuando descargo un proyecto .NET de código abierto, puedo abrir el archivo .sln con Visual Studio y todo se carga. Claro, a veces falta una referencia o algo, pero en realidad se necesita muy poca configuración para que todo funcione. No estoy sintiendo la misma facilidad de uso con Java. Estoy usando eclipse por el momento, y parece que para cada proyecto tengo que crear un nuevo proyecto de Eclipse usando "crear desde una fuente existente", y casi nada se compila correctamente sin una reconfiguración significativa. En el caso de los proyectos web, es incluso peor, porque Eclipse no parece ser compatible con la creación de un proyecto web a partir de una fuente existente. Tengo que crear un proyecto Java estándar desde el código fuente, luego, aparentemente, modificar el archivo del proyecto para incluir los enlaces para que las cosas del kit de herramientas web funcionen correctamente.

Suponiendo que deseo poder contribuir a un proyecto más adelante, no debería tener que realizar cambios tan drásticos en la estructura de archivos para que mi IDE funcione. ¿Qué me estoy perdiendo?

Respuesta

25

La mejor manera de hacerlo es quitar primero el IDE de la ecuación. En C# solo hay un entorno, por lo que se supone la presencia del IDE predeterminado. En Java, un IDE predeterminado no existe.

Al final Java tiene que ver con los archivos fuente de Java y los archivos auxiliares. Si descubres cuáles son, tu 99% de camino a casa. Luego puede aplicar su sistema de compilación favorito para el conjunto. Algunos proyectos requieren un entorno de tiempo de ejecución, como un servidor web para manejar los archivos JSP. Si comprende cuál es la configuración básica (como lo especifica la especificación) puede configurar rápidamente su IDE para manejar eso.

Si obtengo un proyecto con archivos java y archivos auxiliares, arranco Eclipse, creo un nuevo proyecto, lo señalo al directorio base del proyecto y Eclipse automáticamente detectará lo que encuentre y configurará el proyecto en consecuencia.

Pero los proyectos a menudo vienen con un entorno de construcción incluido.El truco es averiguar cuál:

  • si está presente un archivo build.xml, está usando ANT. Esta es una herramienta de "hacer". Puede ejecutar "ant" en el directorio donde está el archivo de compilación (si tiene ANT instalado) e intentará compilar. Todos los IDE, como Eclipse y NetBeans, reconocen el archivo build.xml y permiten iniciar la hormiga desde dentro del IDE. No hay garantía de que los tarros de apoyo estarán presentes.

  • si hay un archivo pom.xml presente, está utilizando Maven. Maven también es una herramienta similar, pero impone un ciclo de construcción mucho más estricto. Además (y esta es probablemente su mayor ventaja) descarga automáticamente tarros de apoyo. Si tiene instalado Maven, se sorprenderá de lo que descarga ... simplemente siéntate, al final funcionará. Los IDE generalmente requieren un complemento para admitir pom.xml, pero luego usted tiene automáticamente la configuración completa del proyecto a la vez.

  • si un archivo .project está presente, por lo general es un proyecto Eclipse

  • si un directorio nbproject está presente, es un proyecto de NetBeans

Llegar a conocer un entorno de construcción/IDE es más trabajo que tratar de configurar un proyecto en el que conoces. Así que siempre intento ejecutarlo en Eclipse. Por lo general, los proyectos son bastante simples de ejecutar una vez que conoce su IDE.

Tener múltiples formas de hacer las cosas no siempre es agradable, pero es el costo de tener una comunidad abierta. Si solo hay un IDE, hace las cosas más fáciles, pero me gusta el hecho de que hay más personas tratando de descubrir cuál es la mejor manera de hacer las cosas.

+2

Me encanta que haya incluido pistas sobre qué sistema de compilación/IDE se utilizó para crear el proyecto. Eso es muy útil para un novato como yo. – Chris

+0

@TBee ¿sería posible agregar build.gradle a su lista de posibles archivos que representan cómo se genera la fuente? Su respuesta es realmente increíble y sería genial mantenerla actualizada con los sistemas de compilación más nuevos que se hacen populares. Gradle es utilizado por Android Studio para proyectos de Android desde mi experiencia, pero parece que podría ser utilizado para cualquier cosa (no un experto en gradle de ninguna manera). –

2

En algunos casos, es posible que tenga que realizar cambios drásticos. Un sistema de construcción bien diseñado no requerirá configuración en la mayoría de las plataformas y quizás algunos cambios en plataformas exóticas. Sin embargo, no existe un solo sistema de compilación estándar para Java; algunas personas usan Eclipse, algunas personas usan Apache Ant, y otras usan Apache Maven o Apache Maven2. Si tuviera que crear un proyecto desde cero, entonces Maven o Ant probablemente sea la forma ideal de hacerlo. Si utiliza el NetBeans IDE, los proyectos que cree contendrán automáticamente un archivo de compilación Ant (para que pueda compilarse en todos los sistemas que usen Ant), pero agregará metadatos adicionales para que NetBeans IDE lo reconozca. Si crea un proyecto Maven, ya sea usando Maven directamente o usando un IDE como Eclipse o NetBeans, entonces ese mismo proyecto puede cargarse en NetBeans o Eclipse sin ningún cambio de configuración adicional (aunque es posible que necesite instalar un plugin para Eclipse para reconocer los proyectos de Maven; NetBeans reconoce los proyectos de Maven de forma inmediata). Si está comenzando un proyecto desde cero, puede estar interesado en el Java Project Template. Si está contribuyendo a un proyecto existente, la forma de ver/editar el proyecto depende del sistema de compilación elegido; si el proyecto ya usa Maven o Ant, cargarlo con otros IDEs debe ser bastante simple, mientras que si el proyecto usa peculiaridades de un IDE específico o usa algún sistema de construcción más exótico, puede ser más difícil.

Cuestiones relacionadas