Question

J'utilise m2eclipse pour importer des projets Java Maven dans Eclipse.

Il ne reconnaît pas src/main/webapp comme répertoire source.

Graphiquement dans l'explorateur de package (ou quand je regarde dans Java-Build-chemin dans les propriétés du projet),
ce répertoire est pas dans la liste des dossiers sources (alors que src/main/java ou src/main/resources font).

Pour y accéder, je dois regarder directement dans le répertoire src /, et commencer à déplier ... Pas très pratique!

Cependant, si je lance maven install, les ressources sont copiés dans le répertoire.
(Exemple: src/main/webapp/index.jsp à target/mywar/index.jsp)

Questions

  1. Est-ce un comportement correct? (Je pensais que ce pourrait être traité comme d'autres ressources ...)
  2. Puis-je résoudre ce problème?
  3. Je me demande s'il y a d'autres inconvénients de cette situation, que je ne serais pas au courant de ce moment?
Était-ce utile?

La solution

  
      
  1. Est-ce un comportement correct? (Je pensais que ce pourrait être traité comme d'autres ressources ...)
  2.   
  3. Puis-je résoudre ce problème?
  4.   
  5. Je me demande s'il y a d'autres inconvénients de cette situation, que je ne serais pas au courant de ce moment?
  6.   
  1. Oui, pour moi, c'est le comportement correct.
  2. Il ne fait pas vraiment de sens pour src / main / webapp être un dossier source, il ne contient pas les fichiers source compilable.
  3. Je ne sais pas. Je suppose que cela dépend de vos attentes:)

Cela dit, m2eclipse a apporté une contribution qui permet de faire src/main/webapp disponibles au niveau supérieur avec une étiquette « Ressources Web » spécifique, quelque chose comme ceci:

text alt

Cela pourrait être une solution pour votre problème (le pliage pas pratique).

Autres conseils

En ce qui concerne maven, src/main/webapp est pas un dossier source dans le sens où son contenu ne sont pas compilés / copiés sur target/classes, donc du point de vue de m2eclipse, ce comportement est correct. Y at-il une raison particulière dont vous avez besoin src / main / webapp être marqué comme un dossier source Eclipse?

Au lieu d'ajouter / src / main / webapp comme dossier source dans le chemin de compilation Java, ajoutez un dossier à inclure dans l'ensemble de déploiement:

MyProject -> propriétés -> Assemblée de déploiement: Ajouter "/ src / main / webapp" déploie sur "/"

Eh bien il vous suffit de marquer le src / main / webapp comme dossier src Eclipse:

droit dossier, cliquez sur webapp -> Chemin de génération -> utilisation en tant que dossier source

Ne pensez pas que vous pouvez facilement modifier ce comportement sans hacks laid, le marquage src est juste quelque chose Eclipse spécifique qu'il utilise pour configurer son classpath etc.

Dans mon cas, Eclipse n'a pas reconnu src/main/webapp comme le dossier des ressources Web. Je résolus par:

  1. Suppression du projet
  2. éclipse Redémarrage
  3. Prendre une nouvelle mise à jour du projet Maven former le SVN.

Une solution consiste à exploiter le soutien M2e pour construire plugin maven aide et déclarer comme chemin de la ressource additioanl src / main / webapp. Cela rend également éclipse copie ressources économisées à la structure du dossier cible de construction.

        <!-- 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>

De nombreuses réponses affirment que cela ne fait pas sens d'avoir src/main/webapp comme dossier source, car les fichiers JSP sont compilés par le conteneur et non Maven au cours du cycle de construction.

Cependant, il est logique lorsque vous faites tests de sécurité :

Certains outils d'analyse de la sécurité fournissent des plugins qui peuvent être intégrés dans IDEs afin que les équipes de développement peuvent analyser localement leur code et corriger les vulnérabilités de base sur leur machine, réduisant ainsi la quantité de travail pour les équipes de sécurité qui peuvent donc travailler sur des tests plus avancés.

Le fait que Eclipse exclut ce répertoire spécifique est un énorme problème: en faisant cela, les outils de sécurité ne seront pas inclure par défaut, le répertoire webapp/ dans le processus d'analyse, qui se traduit par des faux négatifs (réelle les vulnérabilités qui ne sont pas signalés par l'outil). Ce comportement conduit alors les équipes de développement en pensant que leurs pages JSP (par exemple) sont sûrs d'un point de vue de la sécurité.

Si les équipes de test de sécurité ne font pas attention aux analyses menées par des équipes de développement (parfois nous ne pouvons même vérifier que les analyses ont été effectuées au niveau local), le produit est plus susceptible d'être libéré avec des vulnérabilités dans le code contenues dans le dossier webapp/.

Ainsi, ce comportement n'a pas de sens d'un point de vue de la sécurité, et les gens affirmant qu'il ne manque certains points.

Dans tous les cas, je résolu ce problème en ajoutant le dossier src/main/webapp/ sur le chemin de la construction par un clic droit dans le package explorer -> build path -> use as source folder

Je peux penser à une raison.

J'utilise Maven pour développer un projet GWT dans Eclipse. Dans ma configuration, le répertoire src / main / webapp contient les fichiers HTML et CSS que je dois faire référence à dans le cadre de mon effort de développement, même si ce ne sont pas des fichiers « compilable ».

Être en mesure d'obtenir directement à eux plutôt que de plonger dans le répertoire src / dossier est un plus. Et définir dans le POM afin qu'il soit mis en place de cette façon signifie que je ne dois pas garder manuellement ajouter le dossier à chaque fois que je cours éclipse. Éclipse

Pour point de Nestor, je ne plaisante pas. Il est un environnement de développement de bout en bout et non pas seulement un compilateur. Il est conçu comme une interface pour tous les artefacts sources contribuant à une accumulation de JSP pour construire la configuration tels que les fichiers POM. Pourquoi éclipserait même pas la peine d'avoir des éditeurs XML et JSP si ceux-ci ne sont pas compilable? --Which par ailleurs, sont super utiles.

Le plugin maven pour Eclipse (ou vice-versa) est formidable parce qu'il construit l'.classpath, .project et autre configuration nécessaire pour commencer immédiatement à travailler avec des projets Maven dans Eclipse. Cependant, chaque fois que la configuration éclipse est générée (à savoir mvn Eclipse: Eclipse), répertoires non pris en charge doit être ajoutée manuellement. C'est un important sucent.

Le fait que ces plugins négligent la possibilité d'ajouter facilement de nouveaux dossiers sources visibles à partir de l'IDE est un mystère pour moi. Un maven / page du projet de plugin Eclipse cite même contournements pour rendre ces sources temporairement disponibles en commutant les types de projets et duper le plugin - bien sûr, vous devez changer de nouveau la construction immédiatement ou corrompu

.

Pourquoi ne pas simplement créer la possibilité de contrôler indépendamment les déclarations de source dans .classpath ???

J'ai trouvé un tout autre raison pour le même problème que je faisais face - je ne vois pas src / main / webapp dans l'explorateur de package.

Retourné il n'a rien à voir avec soit POM ou avec Eclipse (en utilisant SpringSource Suite 3.5.0) pouvant charger projet Maven.

Le problème est que dans mon src / main / webapp / Scripts / il y avait des fichiers .git et .gitignore. Je pense que peut-être Eclipse n'a pas été en mesure de traiter les noms de fichiers commençant avec un « » dans le dossier webapp. Je l'ai testé cette théorie sur plusieurs projets et il semble tenir le terrain jusqu'à présent.

J'espère que cette aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top