1

maven-war-plugin を使用して、WEB-INF の一部のリソースをフィルタリングしています。ほとんどの場合、次のような静的なものを詰め込みます:

var url = ${contextRoot}/save.json;

また

<link href="static/css/layout-${buildNumber}.css"/>

すべてが素晴らしく機能します。私の問題は、それが開発の悪夢を生み出したことです。私は通常、ローカルの tomcat にホット デプロイし、IDE は (保存時に) 変更をターゲット ディレクトリにコピーします。しかし、それが起こると、最初に war プラグインによって置き換えられたものではなく、ファイルにリテラルの ${property} が作成されます。変更ごとに再デプロイするのではなく、オンザフライでビュー/静的リソースの変更をテストすることをお勧めします。

Tomcatプラグインをいじって実行しましたが、それを使用すると、デプロイに使用しない限りリソースフィルタリングが行われません。その場合、ホットスワップ機能が失われます。

私は春を使用しています。テーマを使用し、テーマのプロパティをフィルタリングしてから、それを使用してビューの値を置き換えても問題ありません。しかし、js/css/その他の静的なものはどうですか?

war プラグインを「オンザフライでフィルタリング」する方法はありますか? 私がやろうとしていることを達成するためのより良い方法を誰かが推奨できますか? 私はそれをあまりにも長い間見てきて、この問題についていくつかのトンネルビジョンを持っているように感じます.

4

2 に答える 2

2

m2e および m2e-wtp で eclipse を使用すると、オンザフライの Web リソース フィルタリングを取得できます。これはここで説明されています: https://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-noteworthy

そしてそこでデモを行いました:http://bit.ly/wGcD4j

このビデオでは、Maven Profile Management UI は JBoss Tools 3.3.0.Beta1 (http://docs.jboss.org/tools/whatsnew/maven/maven-news-3.3.0.Beta1.html) からのものであることに注意してください。 )

于 2012-03-16T13:54:33.200 に答える
1

結局、私は同じ方法を維持しましたが、これを達成するためにアプローチを変更しました。

Javascript の場合、フィルター処理が必要なものはすべて単一の定数ファイルに入れます。

// Constants.js

var BASE_URL = '${contextRoot}';

これの背後にある理由は、Constants.jsファイルがほとんど変更されず、そのファイルがその場で再デプロイされるという問題を回避するためです。

私のもう 1 つの例は、${buildNumber}デプロイ間でのブラウザー リソースのキャッシュを回避するために使用していました。ビルド番号をクエリ文字列に追加しても同様に機能することがわかりました。

<link href="static/css/layout.css?${buildNumber}"/>
于 2012-02-06T14:45:10.777 に答える