2016-05-04 7 views
0

私は動的WebモジュールプロジェクトをM2EのMavenプロジェクトに設定しました。私はEclipseの組み込みmavenを使ってプロジェクトで何かをするので、コマンドラインは消去されません。Eclipseの動的Webモジュールプロジェクトファセットのバージョンを変更するときにM2Eが不安定な設定の火星

私はTomcat 7を使用していますが、最初の問題はM2Mが動的Webモジュールのファセットを3.1に更新することです。 maven->update project...を実行して、もはやTomcatにデプロイできなくなります。

ファセットを3.0にダウングレードすることはできません。 Eclipseは "Can not do that"のようなものを言います。しかし、ファセットの選択を解除してからapplyを選択して3.0に設定することができます。

その時点で、私はtomcatにアプリケーションをデプロイできます。

は、しかし、すぐに私は再び(たとえばFooのために呼ばれる)プロジェクトでmaven->update project...を実行すると、プロジェクトのファセットは3.1にアップグレードされ、それはEARデプロイメントアセンブリでの戦争モジュールでFooEARと呼ばれる新しいプロジェクトを作成します。

私の設定で何が間違っていますか? (私はプロジェクトファセットEARをチェックしていません)

[更新]まだまだ奇妙なmyprojectEARプロジェクトを非戦争プロジェクトに取り込んでいます。

Eclipseの火星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

pomファイルを表示します。 – khmarbaise

+0

@khmarbaiseそれはそこにありますが、私は無関係であると考えられている依存関係と報告セクションを除いて、簡潔にしました。 – Adam

+0

warプロジェクト内でmaven-jar-pluginを実行しているのはなぜですか?そしてなぜあなたは別にmaven-deploy-pluginを使ってzipファイルを配備するのですか?これはmaven-assembly-pluginを使用しているために自動的に行われるからです。 – khmarbaise

答えて

1
  1. 無効化 "動的Webプロジェクト" のファセット。
  2. セットサーブレットバージョンweb.xmlで3.0:のpom.xmlで3.0.x
    <web-app version="3.0" ... 
    
  3. セットサーブレットバージョン( "提供" スコープを忘れないでください):
    <dependency> 
        <groupId>javax.servlet</groupId> 
        <artifactId>javax.servlet-api</artifactId> 
        <version>3.0.1</version> 
        <scope>provided</scope> 
    </dependency> 
    
  4. 「動的Webプロジェクト」ファセット3.0を有効にします。
  5. Alt + F5を押します。
+0

あなたは「伝説」です。私はその従属バージョンを見守っていませんでした - それは私の親のポームに設定されています。私は注釈を使用しているのでweb.xmlはありません。 – Adam

関連する問題