2010-09-17 16 views
49

Bien. Estoy harto de este problema. ¡Este tiene que tener una solución fácil, estoy seguro de eso! ¡Espero que SO pueda ayudarme a deshacerme de esto de una vez por todas!¿Cómo excluir una carpeta que está produciendo advertencias/errores en un proyecto de Eclipse?

Pregunta

¿Cómo podemos llegar Eclipse para dejar de tratar para procesar/compilar todos los archivos en un directorio determinado proyecto ? El objetivo es que no haya errores/advertencias en en la vista de problemas si se relacionan con algo de esta carpeta o sus subcarpetas.

Antecedentes

corremos Eclipse 3.6 y el plug-in v0.10.2.20100623 m2eclipse gestiona nuestra autobuild. Por razones que están fuera de mi control, tenemos toda la distribución de BlazeDS en nuestro directorio de proyectos SVN bajo src/main/resources/blazeds. Esencialmente, este directorio contiene una distribución estándar de tomcat corriendo blazeds a la cual todos nuestros archivos de configuración y proyecto se agregan cuando implementamos en nuestro servidor a través de SCP.

Por lo tanto, cuando ejecutamos implementar, esta versión de tomcat se copia en el servidor y nuestro proyecto se coloca dentro. Tomcat y nuestra aplicación RIA funcionan y todo está bien.

El problema es que Eclipse intenta compilar todo bajo src/main/resources/blazeds al ejecutar AutoBuild y esto genera aproximadamente 300 errores/advertencias en nuestra vista de problema. Entonces, cuando surge un error real, se pierde entre el ruido.

Los errores provienen del código en /blazeds/tomcat/webapps/samples/testdrive-datapush y también en las aplicaciones de ejemplo testdrive-httpservice, traderdesktop. Tienen un código fuente dependiente que no está en el classpath y jar que no están incluidos en las bibliotecas.

fallidos intentos de Soluciones

estoy tratando de empujar la solución adecuada: para eliminar completamente las muestras y también para obtener blazeds fuera de nuestro control de versiones. Eso no sucederá pronto.

He seguido el SO answer here pero es solo una solución muy temporal. Intenté agregar exclusiones en todos los lugares en los que podía pensar y otros miembros de mi equipo hicieron lo mismo. Eliminé src/main/resources como directorio de origen (en Preferencias> Ruta de compilación Java> Pestaña Origen) He agregado exclusiones para blazeds en el directorio de recursos. He probado todas las combinaciones de blazeds y ** como en *blazeds*, **/blazeds/**, etc.

Incluso he intentado incluyendo las bibliotecas y los archivos de código fuente del compilador se queja pero no podía hacerlo bien sin mangling excesivamente nuestra configuración del proyecto

Resumen

Esto tiene que ser simple. ¿Cuál es la forma convencional de excluir una carpeta que está produciendo advertencias/errores en un proyecto de eclipse?


Actualización # 1: solución
de GEDIM a continuación es decente pero
1) no se despeja la X roja en el proyecto
2) es un cambio todos en nuestro equipo tiene que hacer , manualmente
(es decir, no está en un archivo de propiedad del proyecto; por lo tanto, no está registrado en subversión)

Espero que haya una forma de solucionar el problema principal diciendo a Eclipse que este directorio no contiene
elementos para compilar/validar. Tal cambio probablemente aparezca en uno de los archivos de configuración del proyecto.


Actualización # 2:

El cuadro siguiente muestra los X roja que estoy tratando de limpiar y que
Build Path > Exclude
no es una opción ...

Red X's won't go away

+1

Ruta de compilación> Excluir parece ser una buena solución. Funciona perfectamente en Eclipse Juno para modificar Java Build Path. –

Respuesta

27

Puede usar Configure Contents... en el menú de Problems panel. Allí puede crear una nueva configuración y establecer el alcance en On Working Set:. Haga clic en Select... y cree un nuevo conjunto de trabajo que excluya las carpetas que no desea.

+4

¡Gracias por su respuesta! Esto funciona mejor que lo que estábamos haciendo antes, pero sufre dos problemas. Lo más importante, no es un cambio que controle el control de la versión. Así que tengo que caminar con mis otros compañeros de trabajo y hacer que hagan esto. En segundo lugar, todavía intenta compilar las clases. Entonces en el lado izquierdo, todavía veo X rojas en mis carpetas de proyecto de nivel superior sobre el directorio src/main/resource/blazeds. ¡Aparte de esos problemas, esto es fantástico! ¡¡¡Los problemas ya no aparecen en la vista de problemas !! No sabía nada acerca de esta característica de Eclipse. – gMale

+1

7 años después, todavía no se puede saber cómo eliminar el rojo x:/ – Ray

2

Si realmente desea excluir ciertas clases/paquetes de autobuild puede hacer clic justo sobre ellos y seleccione Build Path -> Excluir

alt text

+0

Lamentablemente, eso no funcionó.¡Pero gracias por tu respuesta! Estaba emocionado de probarlo. Sin embargo, "Excluir" no es una opción aquí bajo 'src/main/resources'. He actualizado mi pregunta con una imagen. Excluir * es una opción * en mis carpetas de origen. ¡¡No entiendo por qué esta estúpida cosa está tratando de compilar !! – gMale

+0

No hay exclusión porque lo ha excluido :). ¿Puedes intentar copiar un error que obtienes de la carpeta aquí? ¿Y puedo obtener una visión más clara de lo que hay detrás de ese menú emergente? – nanda

+0

exactamente, ¡no hay excusa! Estoy empezando a preguntarme si esto es un error porque no fue un problema el año pasado. Todos los errores son errores legítimos relacionados con frascos faltantes, etc., como en 'Feed no se puede resolver a un tipo'. Silly Eclipse: dado que este código fuente no se usa, ¡por supuesto que los frascos no están disponibles! Puedo borrar los errores agregando todo tipo de carpetas de lib y referencias de carpetas de origen a la configuración de mi proyecto, pero esa no es la solución deseada. Confunde a los demás y complica demasiado la configuración del proyecto :( – gMale

-1

Dado que los archivos de la carpeta de recursos rara vez cambian, yo sugiera ponerlos en un segundo proyecto (donde puede establecer diferentes opciones de advertencia) y luego acceder a eso a través de una ruta relativa (como ${basedir}/../special-tomcat).

+0

Gracias por su sugerencia, como dije: 'Estoy tratando de forzar la solución adecuada: eliminar las muestras por completo y también sacar las blazeds de nuestro control de versiones. Eso no es así. sucederá pronto. Por razones ajenas a mi control, no puedo promulgar tu solución, pero me gusta la idea de utilizar otros proyectos para ese tipo de propósitos. – gMale

+0

Puedes usar mi respuesta para apoyar tu argumento y cambiar este aspecto del proyecto (como "una exportación externa sugirió esta como la mejor solución") –

+0

Eso lo hace. Estoy asaltando la reunión del lunes y exijo: "¡Si es bueno para Digulla, es lo suficientemente bueno para nosotros!" :) – gMale

0

Configure su proyecto (Proyecto/Propiedades/Java Build Path/Source) para tener, en lugar de la carpeta src de nivel superior con exclusiones, solo una lista de las carpetas que desea compilar.

Suponiendo Eclipse Helios, paso a paso:

  • Desactivar autobuild (Proyecto/construcción automáticamente).
  • Comience con el vacío.
  • Elimine los errores haciendo clic derecho en como en el enlace (solo para estar seguro).
  • añadir carpetas fuente genuina de 1 por 1 (Proyecto/Propiedades/Java Build Path /Fuente/Añadir carpeta)
  • realizar una construcción explícita (Proyecto/Build Project).

Si eso funciona, debería poder volver a encender autobuild. Si no lo hace, algo extraño está sucediendo. Quizás el proyecto no utiliza el Java Builder estándar, sino algo así como un Ant Builder (Proyecto/Propiedades/Constructores).

+0

gracias por su sugerencia. No utiliza el generador de Java estándar, desafortunadamente. Este es un proyecto de Maven y por alguna extraña razón está intentando crear elementos que no son carpetas de origen. – gMale

+0

Muchas de las opciones de configuración son solo para el generador de Java. Por lo tanto, debe consultar los ajustes de configuración de Maven. Probablemente esto aquí: – soru

+0

http://maven.apache.org/plugins/maven-eclipse-plugin/examples/specifying-source-path-inclusions-and-exclusions.html – soru

5

Hay una solicitud de función Eclipse para ignoring warnings from specified source folders. Se han publicado varios parches en el hilo de comentarios que proporcionan implementaciones de la característica. Parece que un parche final se acerca a la etapa de revisión para su inclusión en un próximo lanzamiento.

Actualización 6/19/2012: Eclipse Juno 4.2M6 permite ignorar los problemas de una carpeta fuente en particular. La función está disponible en el cuadro de diálogo Ruta de compilación de Java. Vea el release note.

+1

Me parece que solo se puede excluir 'fuente 'carpetas de errores/advertencias. Lo que parece ser más perdido/útil sería poder ignorar las advertencias en las carpetas de 'destino', ya que contienen código generado en el que no se pueden reparar las advertencias de todos modos (tengo varias advertencias de este tipo en algunos proyectos en el momento). –

52

Encontré un problema similar y lo resolví moviendo la carpeta a la carpeta de mi proyecto. Entonces fui a:

Proyecto
  1. > Propiedades> recursos> Filtros de recursos> Añadir ...
  2. Establecer Tipo de Filtro = Excluir todos.
  3. Conjunto Se aplica a = Carpetas.
  4. Establecer de archivos y carpetas Atributos = {Nombre, coincide, < your_folder_name>}
+4

¡Perfecto! ¡Esta es la mejor solución y resolvió mi problema! – Corbella

+3

Esta debería ser la respuesta aceptada. El otro enfoque no funciona para las subcarpetas dentro de los proyectos. –

+0

Suspiro ... Tengo un problema similar. Mi proyecto tiene carpetas (virtuales) con fuentes, es decir, las fuentes se encuentran en otros lugares. Necesito excluir algunas de estas carpetas de la compilación. Utilicé el ** filtro de recursos ** ** anterior y ** también configuré "** exclude from build **" para la misma carpeta. La carpeta ahora aparece atenuada pero todas las fuentes se siguen construyendo. –

-1

El mejor enfoque es utilizar la opción de Inclusión y Exclusión Patrones en la Vía de construcción Java.
Por ejemplo, si desea excluir un proyecto de compilación automática:
1- Vaya a Propiedades-> Ruta de compilación Java-> Fuente.
2- expanda la carpeta en las "Carpetas de origen en la trayectoria de la estructura:" zona de
3- Seleccionar Exclude-> Editar
4- En los patrones de exclusión añadir **
Nota: para más información sobre estos patrones: Include and Exclusion Patterns

0

Ir a Java Build Path -> Fuente -> Añadir carpeta

Elegir las carpetas correctas que debe ser parte de Build Path

En lo anterior src Captura de pantalla/main/resources tiene que ser eliminado de la construcción, ya que resulta en c error de omisión [ID del paquete incorrecto]. Por lo tanto, incluya la carpeta hasta src/main/resources.

Intenté compilar ruta -> Excluir. Esto en realidad no resuelve el problema. es decir, aunque la marca de RedX está eliminada del Eclipse, ya no serán los proyectos de Java correctos. Es posible que el usuario no pueda ejecutar JUnit Test cases/debug, etc.

Pero al incluir las carpetas correctas, podemos continuar con el Proyecto Java.

Cuestiones relacionadas