2

多数の webapps と jsps を含むプロジェクトがあり、.war ファイルとして正常にビルドされます。

ここで、Tomcat-7 バージョンと Tomcat-5 バージョンの両方をビルドするように Netbeans と Maven を説得する必要があります。誰かが私を正しい方向に向けることができますか?

また、構築している顧客に応じて異なる web.xml を含めることができるようにしたいと考えていますが、上記の回答が得られれば、自分でそれを実現できると思います。

pomファイルで2つのプロファイルを使用する必要があると思いますが、選択するためにそれぞれに何を入力する必要があるかわかりません:

a) The correct jdk to compile with (JDK 6 for TC-7 and JDK 5 for TC-5)
b) The correct version of the javax libraries.

Netbeans 7.1.2 を使用しています。

4

1 に答える 1

1

最適な結果は、Tomcat 5 と Tomcat 7 の両方で動作し、すべての顧客に対して同じ 1 つの war ファイルを持つことです。

Maven プロファイルを使用してすべての顧客のビルドを採用できますが、個々の構成を JNDI に外部化するか、環境変数を介して読み取られる外部プロパティ ファイルを使用することをお勧めします。Spring はそれを行うために PropertyResolverconfigurer を提供します (たとえば)

あなたは Tomcat 5 をサポートしたいので、あなたのプロジェクトは Java 1.5 でビルドされていると思いますか? Tomcat 7 でも動作するはずです。

javax の依存関係には、pom.xml ファイルで提供されるスコープが必要です。したがって、それらは展開されません。アプリケーションが Tomcat の一部である特定のバージョンの jar をすでに必要としている場合は、プロファイルを使用してそれを解決できる場合もあります。ただし、これは顧客ごとのプロファイルと競合する可能性があります。

Tomcat 5 と Tomcat 7 のバージョンに大きな違いがある場合は、3 つのモジュールを作成することをお勧めします - すべてパッケージ化の「war」を使用します。1 つは「ニュートラル」ファイルを含み、1 つは tomcat 5 ファイルを含み、もう 1 つは tomcat 7 ファイルを含みます。tomcat プロジェクトはニュートラル モジュールを war ファイルの依存関係として使用し、maven は war オーバーレイを実行します。したがって、1 つのビルドで tomcat 5 と tomcat 7 の両方のバージョン (および展開に使用されないニュートラルな war ファイル) が生成されます。

http://tomcat.apache.org/whichversion.htmlによると、Tomcat 5 の最小 Java バージョンは Java 1.4 です。しかし、それはTomcatが実行されているものに関連しています。Tomcat 7 は、Java 1.5 バイトコードも実行できるはずです。そのJDKだけが1.6です。maven-compiler-plugin のソース バージョンとターゲット バージョンに 1.5 を使用して、両方のバージョンをターゲットにすることができます。

しかし、Tomcat 7でも実行されるTomcat 5ビルドを作成できるはずだと思います。2 つのバージョン間で競合する依存関係はありますか? またはjspファイルをプリコンパイルしますか?

Maven ビルドの場合、古いターゲット バージョンのソースもコンパイルできるようにするために必要な jdk (1.6) は 1 つだけです。

于 2012-07-17T12:57:01.067 に答える