3

レガシー プロジェクトを開始し、Maven を使用してビルドしようとしています。Eclipse EE と Tomcat v7.0 を使用しています。ターミナルで「mvn package」を実行すると、上記のタイトル行のエラーが発生します。私のpom.xmlファイルには次の依存関係があるため、このエラーは本当に私を困惑させています

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

また、Properties>Targeted Runtimes をチェックインし、Tomcat v7.0 が選択されたランタイムであることを確認しました。私のEclipse環境に問題があると確信しており、修正方法についていくつかの提案が欲しい.

編集:ここにいくつかの追加情報があります。「mvn package」を実行した後の最初の出力は

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project myProject: Compilation failure: Compilation failure:

これに続いて、元の投稿に含めるのを忘れていた別の奇妙なエラーが発生しました。パッケージ javax.servlet のように、org.apache.catalina も tomcat に含める必要があるため、奇妙だと言います。

[ERROR] /path/to/Main.java:[7,26] error: package org.apache.catalina does not exist

また、これは古いプロジェクトではないため、レガシー プロジェクトの意味を混同したと思います。それは、私が現在元の作成者を支援している、すでに多くの作業が行われたプロジェクトです。

4

2 に答える 2

5

不足している依存関係は、おそらくServlet APIです。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

必ず正しいバージョンの API をインポートしてください。レガシー プロジェクトの場合、それは2.5よりも古いバージョンである可能性があります。

Grzegorzが言及したように、サーブレット API はアプリケーション サーバー (Tomcat など) によって提供される必要があるため、提供されスコープも使用する必要があります。

于 2013-07-15T11:19:53.240 に答える
0

プロジェクトにサーバー ランタイムを追加します。例 - Tomcat の場合

1 - プロジェクトを右クリック

2-ビルドパスを選択

3- [ライブラリ] タブに移動します

4- ライブラリを追加

5- サーバー ランタイムの選択

6- ここで Apache Tomcat を取得する必要があります

ここに画像の説明を入力

ここで Apache Tomcat を取得しない場合は、以下のように Project Facets にサーバーを追加する必要があります -

1- プロジェクトを右クリック

2- プロジェクト ファセットの選択

3- オプションが表示されない場合は、[ファセット フォームに変換] リンクをクリックします。

4- 右側の [ランタイム] タブに移動し、ランタイムを選択します

ここに画像の説明を入力

于 2015-06-02T09:12:23.727 に答える