Java >> Java tutorial >  >> Tag >> maven

Webressourcefiltrering med Maven war plugin virker ikke i Eclipse med m2e

Nå, endelig fik jeg det.

Først og fremmest gjorde jeg, hvad khmarbaise påpegede. Jeg flyttede applicationContext.xml til ressourcemappen. War plugin webResources er beregnet til at arbejde med eksterne ressourcer, og filtrering af en fil i selve destinationsmappen var ikke den bedste praksis. Jeg opdaterede POM'en for at afspejle den nye konfiguration

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

og

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <webResources>
                    <resource>
                        <filtering>true</filtering>
                        <targetPath>WEB-INF/context</targetPath>
                        <directory>src/main/resources/WEB-INF/context</directory>
                        <includes>
                            <include>applicationContext.xml</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

Så halvdelen af ​​æren til ham. Men det var ikke nok, det virkede stadig ikke. Jeg indså, at Maven/m2e faktisk filtrerede min fil, men den fik ikke mine definerede egenskabsfiler. Efter nogle test fandt jeg ud af, at m2e ignorerer activeByDefault mulighed i profilaktiveringssektionen.

Så jeg tilføjede min standardprofil til projektets Maven-konfiguration, og så virkede det


Jeg havde et lignende problem med at filtrere web.xml. Jeg løste problemet ved at genimportere hele projektet i formørkelse.

Årsagen var en korrupt /.settings/org.eclipse.wst.common.component-fil. I denne fil er rækkefølgen af ​​filerne, der er kopieret til den lokale webservers implementeringsmappe, defineret. For eksempel:

<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
  <wb-module deploy-name="liquidvote-rest">
    <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
    <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
    <property name="context-root" value="myapp"/>
    <property name="java-output-path" value="/myapp/target/classes"/>
  </wb-module>
</project-modules>

Hvis web.xml eller application.xml findes i flere mapper, vil det blive taget fra den første mappe, der findes. Derfor er det vigtigt, at

    <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>

er den første post.

Du finder mere information på http://wiki.eclipse.org/M2E-WTP_FAQ i afsnittet "Hvad er denne webressourcemappe?"


Java tag