11

MavenとEclipseWTPに非常に奇妙な問題があります。私はマルチモジュールプロジェクトを持っています、それを呼びましょうproject。2つのモジュールproject-baseとで構成されていますproject-web。ワークスペースの解決を有効にしました(そして、他のいくつかの非常によく似たMavenプロジェクトで正常に機能します)。

project-baseはの依存関係でproject-webあり、通常はjarファイルとしてデプロイされます。しかし、ここに表示されているように、数日間、ローカルのTomcatにクラスフォルダーとしてデプロイされ続けます。 依存関係はjarではなくフォルダーとしてデプロイされます

したがって、Tomcatは、フォルダではなくjarであると想定しているため、そこにあるクラスファイルを認識しません。接尾辞は、私の-testsWebプロジェクトのベースからテストを行う必要があるためです。これは問題ではないと思います。

project-webワークスペースから解決される3つの依存関係があります。それらのうちの2つはjarとして正しく展開されますが、3つ目はそうではありません。

project-baseの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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>project</artifactId>
        <groupId>com.company.project</groupId>
        <version>4.0.0</version>
    </parent>
    <artifactId>project-base</artifactId>
    <name>projectBase</name>
    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>windows-1251</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.4</version>
            </plugin>
        </plugins>
    </build>
</project>

project-baseで定義されている依存関係はproject-web次のようになります。

<dependency>
    <groupId>com.company.project</groupId>
    <artifactId>project-base</artifactId>
    <version>${project.version}</version>
</dependency>

<dependency>
    <groupId>com.company.project</groupId>
    <artifactId>project-base</artifactId>
    <version>${project.version}</version>
    <type>test-jar</type>
    <scope>test</scope>
</dependency>

なぜ1つの依存関係がこのような奇妙な方法でデプロイされるのかわかりません。また、これを修正する方法もわかりません。プロジェクト、Tomcatをクリーンアップし、Webプロジェクトを再デプロイし、Mavenリポジトリ全体をパージし、プロジェクト全体をVCSから新しくチェックアウトしましたが、何も役に立ちませんでした。

Eclipse WTPがこの依存関係をjarファイルではなくフォルダーとしてデプロイする原因は何ですか?

4

4 に答える 4

3

「デプロイメントアセンブリ」プロジェクト設定ページで依存関係を削除して再度追加することで、問題を解決しました。

于 2014-03-28T09:03:50.770 に答える
2

私はちょうど同じ問題を抱えていました。m2eをバージョン1.2にアップグレードすると修正されました。

于 2012-09-26T14:17:25.907 に答える
1

そのフォルダーが展開されたJARである場合(つまり、JARファイルに似ていますが、アーカイブされていないフォルダーとして表示されます)、私の場合はサーバーコネクターの問題でした。

私はTomcatの代わりにJBossを使用していますが、これはこの問題に苦しんでいる他の人にとって役立つかもしれません。

Eclipseに最新のJBossToolsがインストールされている場合は、サーバービューでサーバーをダブルクリックして設定を開くことができます。

[展開]タブで、プロジェクトごとに[ Zipモジュールのはい/いいえ]を選択できます。ユーティリティjarファイルにYESを選択すると、JBossは依存関係をフォルダーではなく通常のJARファイルとしてデプロイしました。

于 2016-10-10T09:07:06.757 に答える
0

最終的に問題を解決しました。プロジェクトのプロパティセクションDeploymentAssemblyに問題がありました。project-baseEclipseが述べたように、現在のページにエラーが含まれているため、保存できませんでした。

次に、設定ファイルを調べました.settings/org.eclipse.wst.common.component。それは完全に空でした(理由はわかりません)。次に、次のブロックを追加しました。

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="project-base">
        <wb-resource deploy-path="/" source-path="/src/main/java"/>
        <wb-resource deploy-path="/" source-path="/src/main/resources"/>
    </wb-module>
</project-modules>

この後、設定ページに再びアクセスでき、JARが正しくアセンブルされます。ワークスペースの解像度も機能します。

于 2014-03-05T10:01:12.153 に答える