Pregunta

Yo uso m2eclipse para importar proyectos de Maven en Eclipse Java.

No reconoce src/main/webapp como un directorio de origen.

gráficamente en el explorador de paquetes (o cuando miro en Java Build-Path en las propiedades del proyecto), Francia este directorio no está en la lista de carpeta de fuentes (mientras src/main/java o src/main/resources hacen).

Para acceder a ella, tengo que mirar directamente en el directorio src /, y empezar a desplegar ... No es muy conveniente!

Sin embargo, si me quedo maven install, los recursos se copian en el directorio correcto.
(Ejemplo: src/main/webapp/index.jsp a target/mywar/index.jsp)

Preguntas

  1. ¿Es este un comportamiento correcto? (Estaba pensando que podría ser tratado como otros recursos ...)
  2. Podría solucionarlo?
  3. Me pregunto si hay otros inconvenientes de esta situación, que no iba a ser consciente de este momento?
¿Fue útil?

Solución

  
      
  1. ¿Es este un comportamiento correcto? (Estaba pensando que podría ser tratado como otros recursos ...)
  2.   
  3. Podría solucionarlo?
  4.   
  5. Me pregunto si hay otros inconvenientes de esta situación, que no iba a ser consciente de este momento?
  6.   
  1. Sí, para mí esto es el comportamiento correcto.
  2. En realidad no tiene sentido para src / main / webapp ser una carpeta de origen, que no contiene archivos de origen compilables.
  3. No sé. Supongo que depende de sus expectativas:)

Dicho esto, m2eclipse hizo una contribución que permite hacer src/main/webapp disponibles en el nivel superior con una etiqueta de "Recursos de web" específica, algo como esto:

text alt

Esto podría ser una solución para su problema (el plegamiento no es conveniente).

Otros consejos

En lo que se refiere a Maven, src/main/webapp no es una carpeta de origen en el sentido de que su contenido no se compilan / copiado a target/classes, por lo que desde el punto de vista de m2eclipse, este es un comportamiento correcto. ¿Hay alguna razón en particular que necesita src / main / webapp ser marcado como una carpeta de origen Eclipse?

En lugar de añadir / src / main / webapp como una carpeta de origen en el camino de construcción Java, agregarlo como una carpeta para incluir en el conjunto del despliegue:

MiProyecto -> propiedades -> Asamblea de despliegue: Añadir "/ src / main / webapp" despliega a "/"

Bueno, sólo hay que marcar el src / main / webapp como una carpeta src Eclipse:

carpeta webapp clic derecho -> Vía de construcción -> uso como carpeta de origen

No creo que se puede cambiar fácilmente este comportamiento sin ningún tipo de hacks feo, el marcado src Eclipse es sólo algo específico que se utiliza para configurar su ruta de clase, etc.

En mi caso, Eclipse no reconoció src/main/webapp como la carpeta de recursos Web. Lo resolví por:

  1. Eliminación del proyecto
  2. Al reiniciar Eclipse
  3. Tomar una nueva actualización del proyecto Maven formar el SVN.

Una solución es explotar el apoyo M2e para la construcción ayudante plugin de Maven y declarar src / main / webapp como una ruta del recurso additioanl. Esto también hace que los recursos ahorrados de copia de eclipse a la estructura de la carpeta de destino de construcción.

        <!-- help eclipse identify the webapp folder as a resource folder: -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/webapp</directory>
                                <targetPath>${project.build.directory}/${project.build.finalName}</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Muchas de las respuestas afirman que no hace sens a tener src/main/webapp como una carpeta de origen porque los archivos JSP son compiladas por el contenedor y no Maven durante el ciclo de acumulación.

Sin embargo, tiene sentido cuando estás haciendo pruebas de seguridad

Algunas de seguridad Herramientas de exploración proporcionan plugins que se pueden integrar en entornos de desarrollo para que los equipos de desarrollo pueden escanear localmente su código y corregir vulnerabilidades básicas en su máquina, lo que reduce la cantidad de trabajo de los equipos de seguridad, por tanto, que puede trabajar en las pruebas más avanzado.

El hecho de que Eclipse excluye este directorio específico es un gran problema: al hacer eso, herramientas de seguridad no incluirán por defecto el directorio webapp/ en el proceso de escaneo, lo que resulta en falsos negativos (real vulnerabilidades que no se declaran por la herramienta). Este comportamiento conduce entonces los equipos de desarrollo en el pensamiento de que sus páginas JSP (por ejemplo) son seguros desde el punto de vista de la seguridad.

Si los equipos de pruebas de seguridad no prestan atención a las exploraciones realizadas por los equipos de desarrollo (a veces ni siquiera podemos comprobar qué análisis se han realizado a nivel local), el producto es más probable que sea lanzado con vulnerabilidades en el código contenidos en el webapp/ carpeta.

Por lo tanto, este comportamiento no tiene sentido desde el punto de vista de la seguridad, y la gente alegando que no faltan algunos puntos.

En cualquier caso, he resuelto este problema mediante la adición de la carpeta src/main/webapp/ a la trayectoria de la estructura haciendo clic derecho en el package explorer -> build path -> use as source folder

No puedo pensar en una razón.

Estoy usando Maven para el desarrollo de un proyecto GWT en Eclipse. En mi configuración, el directorio src / main / webapp contiene los archivos HTML y CSS que tengo que hacer referencia a como parte de mi esfuerzo de desarrollo, a pesar de que ellos no son los archivos "compilables".

Ser capaz de llegar a ellos directamente en lugar de sumergirse en la carpeta / src es un plus. Y definirlo en el POM para que se estableció de esa manera significa que no tengo que seguir añadiendo manualmente la carpeta cada vez que ejecute el eclipse:. Eclipse

A punto de Nestor, no es broma. Es un entorno de desarrollo de extremo a extremo y no sólo un compilador. Está pensado como una interfaz para todos los artefactos de origen que contribuyen a la acumulación de JSP de configuración para construir tales como archivos de POM. ¿Por eclipsaría la molestia de tener XML y JSP editores si éstas no se compilan-poder? -Que por cierto, son super-útil.

El plugin Maven para Eclipse (o viceversa) es excelente, ya que se basa la .classpath, .project, y otra configuración necesaria para comenzar inmediatamente el trabajo con proyectos de Maven en Eclipse. Sin embargo, se genera el config Eclipse cada vez (es decir mvn eclipse: eclipse), directorios no compatibles deben añadirse manualmente. Esa es una de las principales chupar.

El hecho de que estos complementos descuidan la posibilidad de añadir fácilmente nuevas carpetas de origen visibles desde el IDE es un misterio para mí. página del proyecto / eclipse Plugin Una experta incluso cita soluciones temporales para la fabricación de estas fuentes disponibles de forma temporal al cambiar los tipos de proyectos y engañando el plugin - por supuesto, es necesario cambiarlo de nuevo inmediatamente o corromper la creación

.

¿Por qué no acaba de crear la capacidad de controlar de forma independiente las declaraciones de origen en .classpath ???

He encontrado una razón totalmente diferente para el mismo problema que estaba enfrentando - que no vería src / main / webapp en el explorador de paquetes.

Resultó que no tenía nada que ver ni con POM o con Eclipse (usando SpringSource suite 3.5.0) que es capaz de cargar hasta proyecto experto.

El problema era que dentro de mi src / / webapp / scripts / carpeta principal había archivos .git y .gitignore. Sospecho que puede haber Eclipse no fue capaz de hacer frente a los nombres de archivo que empieza con un "" en la carpeta webapp. He probado esta teoría a través de múltiples proyectos y parece mantener el terreno hasta el momento.

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top