2016-05-04 1 views
0

Ich habe ein dynamisches Webmodulprojekt, das als Maven-Projekt mit M2E konfiguriert ist. Ich benutze nur Eclipse Embedded Maven, um irgendetwas mit dem Projekt zu tun, also keine Befehlszeile säubert etc.Dynamisches Webmodul in Eclipse Mars mit M2E unstable config beim Ändern von Versionen in Projektfacetten

Ich benutze Tomcat 7 und das erste Problem, das ich habe, ist, dass M2E die dynamische Web-Modul-Facette auf 3.1 wenn ich aktualisieren wird Führen Sie maven->update project... aus, damit ich dann nicht mehr auf Tomcat bereitstellen kann.

Ich kann die Facette nicht auf 3.0 herabstufen. Eclipse sagt nur etwas wie "Kann das nicht tun". Allerdings kann ich die Facette abwählen und dann apply, und dann auf 3.0 setzen.

An diesem Punkt kann ich dann die App in Tomcat bereitstellen.

Doch sobald ich maven->update project... wieder auf dem Projekt (genannt zum Beispiel Foo) ausführen, wird das Projekt Facette 3.1 aktualisiert und schafft ein neues Projekt FooEAR mit dem Krieg Modul in der EAR-Entfaltungsvorrichtung genannt.

Was ist falsch in meiner Konfiguration? (Ich habe kein Projekt Facette EAR überprüft)

[Update] Immer noch die seltsame myprojectEAR Projekt auf einem Nicht-Krieg-Projekt.

Eclipse-Mars 4.5.1

M2E 1.6.2

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
      http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
    <groupId>com.foo</groupId> 
    <artifactId>foo-parent</artifactId> 
    <version>1.0.1-SNAPSHOT</version> 
    </parent> 
    <artifactId>foo</artifactId> 
    <version>0.0.6-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <properties> 
    <targetRepositoryId>init later</targetRepositoryId> 
    <targetRepositoryUrl>init later</targetRepositoryUrl> 
    </properties> 
    <build> 
    <resources> 
     <resource> 
     <directory>${basedir}/src/main/resources</directory> 
     <filtering>false</filtering> 
     </resource> 
     <resource> 
     <directory>${basedir}/src/main/resources</directory> 
     <targetPath>${basedir}/src/main/javadoc</targetPath> 
     <filtering>true</filtering> 
     <includes> 
      <include>**/overview.html</include> 
     </includes> 
     </resource> 
     <resource> 
     <directory>${basedir}/thunder</directory> 
     <targetPath>${project.build.directory}/thunder</targetPath> 
     <filtering>true</filtering> 
     <includes> 
      <include>*</include> 
     </includes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <configuration> 
      <archive> 
      <manifest> 
       <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
       <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
       <addClasspath>true</addClasspath> 
       <classpathPrefix>dependency-jars/</classpathPrefix> 
      </manifest> 
      </archive> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-war-plugin</artifactId> 
     <configuration> 
      <warSourceDirectory>src/main/webapp</warSourceDirectory> 
      <failOnMissingWebXml>false</failOnMissingWebXml> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
      <descriptor>src/assembly/zip-file.xml</descriptor> 
     </configuration> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-deploy-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>ZipOntoNexus</id> 
      <phase>deploy</phase> 
      <goals> 
       <goal>deploy-file</goal> 
      </goals> 
      <configuration> 
       <file>${project.build.directory}/${project.build.finalName}.zip</file> 
       <groupId>${project.groupId}</groupId> 
       <artifactId>${project.artifactId}-zip</artifactId> 
       <version>${project.version}</version> 
       <repositoryId>${targetRepositoryId}</repositoryId> 
       <url>${targetRepositoryUrl}</url> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     <version>2.18.1</version> 
     <configuration> 
      <groups>com.foo.IntegrationTest</groups> 
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>integration-test</goal> 
      </goals> 
      <configuration> 
       <includes> 
       <include>**/*.class</include> 
       </includes> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <configuration> 
      <configLocation>${basedir}/checkstyle/checkstyle.xml</configLocation> 
      <propertiesLocation>${basedir}/checkstyle/checkstyle-maven.properties</propertiesLocation> 
     </configuration> 
     </plugin> 
     <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <executions> 
      <execution> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <phase>prepare-package</phase> 
      <configuration> 
       <tasks> 
       <delete failonerror="false"> 
        <fileset 
        dir="${project.build.directory}/${project.build.finalName}" 
        includes="version*.txt" /> 
       </delete> 
       <mkdir 
        dir="${project.build.directory}/${project.build.finalName}" /> 
       <touch 
        file="${project.build.directory}/${project.build.finalName}/version-${project.version}.txt" /> 
       </tasks> 
      </configuration> 
      </execution> 
      <execution> 
      <id>debug deploy</id> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <phase>verify</phase> 
      <configuration> 
       <tasks if="project.version SNAPSHOT"> 
       <property name="targetRepositoryUrl" 
        value="${project.distributionManagement.snapshotRepository.url}" /> 
       <echo message="url=${targetRepositoryUrl}" /> 
       </tasks> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.7</version> 
     <!-- add-test-source goal executed at generate-test-sources phase. --> 
     <!-- http://www.petrikainulainen.net/programming/maven/integration-testing-with-maven/ --> 
     <executions> 
      <execution> 
      <id>add-integration-test-sources</id> 
      <phase>generate-test-sources</phase> 
      <goals> 
       <goal>add-test-source</goal> 
      </goals> 
      <configuration> 
       <sources> 
       <source>src/integration-test/java</source> 
       </sources> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.pitest</groupId> 
     <artifactId>pitest-maven</artifactId> 
     <version>1.1.5</version> 
     <configuration> 
      <targetClasses> 
      <param>com.foo.*</param> 
      </targetClasses> 
      <targetTests> 
      <param>com.foo.*</param> 
      </targetTests> 
      <excludedGroups> 
      <excludedGroup>com.foo.PitSkip</excludedGroup> 
      </excludedGroups> 
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>com.fortify.ps.maven.plugin</groupId> 
     <artifactId>maven-sca-plugin</artifactId> 
     <version>3.50</version> 
     </plugin> 
    </plugins> 
    <pluginManagement> 
     <plugins> 
     <!--This plugin's configuration is used to store Eclipse m2e settings 
      only. It has no influence on the Maven build itself. --> 
     <plugin> 
      <groupId>org.eclipse.m2e</groupId> 
      <artifactId>lifecycle-mapping</artifactId> 
      <version>1.0.0</version> 
      <configuration> 
      <lifecycleMappingMetadata> 
       <pluginExecutions> 
       <pluginExecution> 
        <pluginExecutionFilter> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>build-helper-maven-plugin</artifactId> 
        <versionRange>[1.7,)</versionRange> 
        <goals> 
         <goal>add-test-source</goal> 
        </goals> 
        </pluginExecutionFilter> 
        <action> 
        <ignore></ignore> 
        </action> 
       </pluginExecution> 
       <pluginExecution> 
        <pluginExecutionFilter> 
        <groupId>org.jacoco</groupId> 
        <artifactId>jacoco-maven-plugin</artifactId> 
        <versionRange>[0.5,) 
        </versionRange> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
        </pluginExecutionFilter> 
        <action> 
        <!-- see http://wiki.eclipse.org/M2E_plugin_execution_not_covered --> 
        <ignore></ignore> 
        </action> 
       </pluginExecution> 
       <pluginExecution> 
        <pluginExecutionFilter> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <versionRange>[1.3,)</versionRange> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        </pluginExecutionFilter> 
        <action> 
        <execute> 
         <runOnIncremental>true</runOnIncremental> 
        </execute> 
        </action> 
       </pluginExecution> 
       </pluginExecutions> 
      </lifecycleMappingMetadata> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
</project> 
+0

Zeigen Sie Ihre Pom-Datei. – khmarbaise

+0

@khmarbaise es ist da, minus Abhängigkeiten und Berichtsabschnitte, die ich für irrelevant hielt, für Prägnanz. – Adam

+0

Warum führst du das maven-jar-plugin in einem Kriegsprojekt aus? Und warum verwenden Sie maven-deploy-plugin separat, um eine zip-Datei zu implementieren, weil dies automatisch geschieht, weil Sie das maven-assembly-plugin verwenden? – khmarbaise

Antwort

1
  1. Disable "Dynamic Web-Projekt" Facette.
  2. Set-Servlet-Version 3.0 in web.xml:
    <web-app version="3.0" ... 
    
  3. Set Servlet-Version zu 3.0.x in pom.xml (nicht vergessen "zur Verfügung gestellt" scope):
    <dependency> 
        <groupId>javax.servlet</groupId> 
        <artifactId>javax.servlet-api</artifactId> 
        <version>3.0.1</version> 
        <scope>provided</scope> 
    </dependency> 
    
  4. Erneutes "Dynamic Web Project" -Facet 3.0.
  5. Drücken Sie Alt + F5.
+0

Sie sind eine Legende. Ich habe diese Abhängigkeitsversion nicht getaktet - sie ist in meinem Eltern-Pom festgelegt. Ich verwende Anmerkungen, also habe ich keine web.xml - ich überprüfe jetzt einfach, dass alles funktioniert. – Adam

Verwandte Themen