jar 依存関係 (別のモジュール) 内にいくつかの Spring コンポーネントがパックされたモジュラー Web アプリケーションを構築しています。この jar には、次のような JSP リソースも含まれています。
- モジュール + src/main/resources/META-INF/resources/module/*.jsp
ここで、アプリケーションで次の構造を使用して特定の JSP をオーバーライドしたいと考えています。
- アプリ + src/main/resources/META-INF/resources/module/menu.jsp
それを使用してアプリケーションを実行するtomcat7:run
と、上書きされmenu.jsp
たものが表示されることがありますが、その後の実行は古いものになります。
で実行することtomcat7:run-war
は、より有望でした。ほとんどの実行で新しい menu.jsp が表示されます。ただし、アプリケーションを別の Tomcat 7 インスタンスにデプロイすると、古いメニューが再び表示されます。
menu.jsp はpageContext.include("/module/menu.jsp");
、カスタム タグによって呼び出される include using です。
このリソースのオーバーライドの信頼性を高めるにはどうすればよいですか? ランダムに動作しているように見えるので、私はまったく無知です。誰かがここで光を当てることができることを願っています。
これが関連しているかどうかはわかりませんが、コンポーネント スキャンを使用できるようにするには、次のプラグイン構成で jar クラスを展開する必要があります。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<overWriteIfNewer>false</overWriteIfNewer>
<artifactItems>
<artifactItem>
<groupId>my.company</groupId>
<artifactId>my-dependency</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<includes>**/*.class</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>