Domanda

Io uso m2eclipse per importare progetti Maven Java in Eclipse.

Si riesce a riconoscere src/main/webapp come una directory di origine.

Graficamente nella confezione explorer (o quando guardo in Java-Build-Path nelle proprietà del progetto),
questa directory non è nella lista delle cartelle fonti (mentre src/main/java o src/main/resources fanno).

Per accedervi, devo guardare direttamente nella directory / src, e iniziare a dispiegarsi ... Non molto comodo!

Tuttavia, se corro maven install, le risorse vengono copiati nella directory corretta.
(Esempio: src/main/webapp/index.jsp a target/mywar/index.jsp)

Domande

  1. È questo un comportamento corretto? (Stavo pensando che potrebbe essere trattato come altre risorse ...)
  2. Potrei risolvere il problema?
  3. Mi chiedo se ci sono altri inconvenienti di questa situazione, che non avrei essere a conoscenza di questo momento?
È stato utile?

Soluzione

  
      
  1. È questo un comportamento corretto? (Stavo pensando che potrebbe essere trattato come altre risorse ...)
  2.   
  3. Potrei risolvere il problema?
  4.   
  5. Mi chiedo se ci sono altri inconvenienti di questa situazione, che non avrei essere a conoscenza di questo momento?
  6.   
  1. Sì, per me questo è il comportamento corretto.
  2. E 'in realtà non ha senso per src / main / webapp per essere una cartella di origine, non contiene i file di origine compilabili.
  3. Non lo so. Immagino che dipende dalle vostre aspettative:)

Detto questo, m2eclipse ha dato un contributo che permette di fare src/main/webapp disponibili al livello superiore con uno specifico "Risorse Web" etichetta, qualcosa di simile a questo:

alt text

Questa potrebbe essere una soluzione per la vostra preoccupazione (il non comodo pieghevole).

Altri suggerimenti

Per quanto riguarda la Maven è interessato, src/main/webapp non è una cartella di origine, nel senso che il suo contenuto non sono compilati / copiati target/classes, quindi dal punto di vista di m2eclipse, questo è un comportamento corretto. C'è un motivo particolare è necessario src / main / webapp per essere contrassegnato come una cartella source Eclipse?

Invece di aggiungere / src / main / webapp come una cartella di origine nel percorso di java compilazione, aggiungerlo come una cartella da includere nel gruppo di distribuzione:

MyProject -> Proprietà -> Assemblea Distribuzione: Aggiungere "/ src / main / webapp" schiera a "/"

Beh non resta che segnare lo src / main / webapp come una cartella src Eclipse:

destro cartella click webapp -> costruire il percorso -> uso come cartella di origine

Non credo che si può facilmente cambiare questo comportamento, senza alcun hack brutto, la marcatura src è solo qualcosa Eclipse specifico che si utilizza per configurare il suo percorso di classe, ecc.

Nel mio caso, Eclipse non è riuscito a riconoscere src/main/webapp come cartella di risorse Web. Ho risolto facendo:

  1. Eliminazione del progetto
  2. Riavvio eclipse
  3. Facendo una fresca aggiornamento del progetto Maven formare lo SVN.

Una soluzione è quella di sfruttare il supporto M2E per costruire helper plug Maven e dichiarare src / main / webapp come un percorso risorsa additioanl. Questo rende anche eclissi risorse risparmiate copia alla struttura di cartelle di destinazione di compilazione.

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

Molte risposte sostengono che non fa sens per avere src/main/webapp come una cartella di origine perché i file JSP vengono compilati dal contenitore e non Maven durante il ciclo di compilazione.

Tuttavia, ha senso quando si sta facendo test di sicurezza :

Alcuni sicurezza strumenti di scansione forniscono plugin che possono essere integrati in IDE in modo che i team di sviluppo possono localmente la scansione il loro codice e risolvere le vulnerabilità di base sulla loro macchina, riducendo così la quantità di lavoro per i team di sicurezza che può quindi lavorare sulla sperimentazione più avanzata.

Il fatto che Eclipse esclude questa directory specifica è un problema enorme: così facendo, strumenti di sicurezza non includeranno di default la directory webapp/ nel processo di scansione, che si traduce in falsi negativi (attuale vulnerabilità che non vengono segnalati dallo strumento). Questo comportamento porta poi i team di sviluppo a pensare che le loro pagine JSP (per esempio) sono sicuri dal punto di vista della sicurezza.

Se le squadre test di sicurezza non prestare attenzione alle scansioni condotte da team di sviluppo (a volte non riusciamo nemmeno a controllare quali scansioni sono state eseguite a livello locale), il prodotto è più probabile essere liberato con vulnerabilità nel codice contenute nel cartella webapp/.

Quindi, questo comportamento non ha senso da un punto di vista della sicurezza, e la gente sostenendo che non mancano alcuni punti.

In ogni caso, ho risolto il problema aggiungendo la cartella src/main/webapp/ al percorso di generazione facendo clic destro nel package explorer -> build path -> use as source folder

riesco a pensare a una ragione.

Sto usando Maven per lo sviluppo di un progetto GWT in Eclipse. Nella mia configurazione, la directory src / main / webapp contiene i file HTML e CSS che devo fare riferimento a come parte del mio sforzo di sviluppo, anche se sono non i file "compilabili".

Essere in grado di arrivare a loro direttamente invece di tuffarsi nel src / cartella è un plus. E definendo nel POM in modo che venga istituito in questo modo significa che non devo continuare a aggiungere manualmente la cartella ogni volta che corro eclissi:. Eclipse

Per il punto di Nestore, non scherzo. E 'un ambiente end-to-end di sviluppo e non solo un compilatore. E 'inteso come interfaccia per tutti gli artefatti di origine che contribuiscono a una generazione da JSP di costruire la configurazione ad esempio i file POM. Perché avrebbe eclissi nemmeno dover editor XML e JSP, se questi non sono in grado di compilazione? --Che tra l'altro, sono super-utile.

Il plugin Maven per Eclipse (o viceversa) è eccezionale perché costruisce il .classpath, .project, e altra configurazione necessaria per iniziare immediatamente a lavorare con progetti Maven in eclisse. Tuttavia, ogni volta che la configurazione eclisse è generato (cioè mvn eclisse: Eclipse), directory supportate deve aggiungere manualmente. Questo è un importante succhiare.

Il fatto che questi plug-trascurano la possibilità di aggiungere facilmente nuove cartelle di origine visualizzabili all'interno dell'IDE è un mistero per me. pagina del progetto / Plug-in Eclipse Uno Maven cita anche work-around per rendere queste fonti temporaneamente disponibili commutando i tipi di progetto e ingannando il plugin - naturalmente, è necessario cambiare di nuovo immediatamente o corrompere la build

.

Perché non solo creano la capacità di controllare in modo indipendente le dichiarazioni di origine in .classpath ???

Ho trovato un intero motivo diverso per lo stesso problema che stavo affrontando - non vedrei src / main / webapp nel pacchetto explorer.

Si è rivelata non aveva niente a che fare né con POM o con Eclipse (usando SpringSource Suite 3.5.0) essere in grado di caricare fino progetto Maven.

Il problema era che dentro il mio src / webapp / Scripts / cartella / main c'erano file .git e .gitignore. Ho il sospetto che possono essere Eclipse non è stato in grado di trattare con i nomi di file che inizia con un "" nella cartella webapp. Ho testato questa teoria su più progetti e sembra di tenere a terra finora.

Spero che questo aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top