1

開発サイクルをスピードアップしたい:このようなファイルタイプのビルドデプロイの段階を排除することで、コードの読み取り/書き込み、ビルド、デプロイ、テストを行います。

  • CSS(.css)
  • JavaScript(.js)
  • 画像(.png、.jpg、.gif)

CSS / JS / imgは静的ファイル(ビルドステージを必要としない)であり、JBossがファイルのタイムスタンプの変更をスキャンして静的ファイルキャッシュを更新できることを願っています。

私はweb.xmlにそのようなコードを持っています:

<servlet>
    <servlet-name>resources</servlet-name>
    <servlet-class>org.springframework.web.servlet.ResourceServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>resources</servlet-name>
    <url-pattern>/js/**</url-pattern>
    <url-pattern>/css/**</url-pattern>
    <url-pattern>/images/**</url-pattern>
</servlet-mapping>

したがって、CSS / JS/imgsへのフルパスも提供するものに変更する必要があります~/devel/$proj/src/main/webapp。また、静的コンテンツはSpringではなくJBoss自体によって提供される可能性があると思います。

要約として:選択した(私の場合は開発)ディレクトリから静的ファイルを提供するようにJBoss AS7でJavaEEプロジェクトを設定し、他のファイルは.warファイル(によってデプロイするmvn -DskipTests=true package jboss-as:deploy)を介して通常どおりデプロイする方法は?

4

1 に答える 1

1

4時間を費やした後、私はそれを機能させます!ただし、新しい Spring 3.x シリーズに基づくソリューションであるため、一般的なケースではありません。

一般的なケースの解決策については、有名なブログ記事http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.htmlのように、独自のサーブレットを実装する必要があります。

コードを書くのは好きではありませんが、ビルド済みのコンポーネントを構成するのは好きです。

まず、すべての URL のリクエスト ハンドラを次のように変更しますorg.springframework.web.servlet.DispatcherServlet

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

私が持っている前に:

<url-pattern>*.htm</url-pattern>
<url-pattern>*.xml</url-pattern>

そのため*.js、デフォルトのコンテナー (JBoss) サーブレットによって管理されるファイルと*.css*.pngそれ以上のオプションは効果がありません...

次に、Spring 3.0 の機能<mvc:resources>( xmlns:mvc="http://www.springframework.org/schema/mvc") とfile:リソース タイプを使用します。

<mvc:resources mapping="/css/**" location="file:/home/user/devel/proj/src/main/webapp/css/"/>
<mvc:resources mapping="/images/**" location="file:/home/user/devel/proj/src/main/webapp/images/"/>
<mvc:resources mapping="/js/**" location="file:/home/user/devel/proj/src/main/webapp/js/"/>

ブラウザーで Web ページを保存.jsまたは.cssファイルして更新するたびに、新しいコンテンツが表示されます。

静的コンテンツのデプロイ時間を 2 分から 1 秒に短縮!!!

更新Tomcat 7に切り替えた後、コンテキストを構成します/opt/apache-tomcat-7.0.40/conf/Catalina/localhost/CTXNAME.xml:

<Context docBase="/home/user/devel/proj-dev/src/main/webapp"
         reloadable="true">
    <Resources className="org.apache.naming.resources.VirtualDirContext"
               extraResourcePaths="/WEB-INF/classes=/home/user/devel/proj-dev/target/classes,/WEB-INF/lib=/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
            virtualClasspath="/home/user/devel/proj-dev/target/classes;/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
    <JarScanner scanAllDirectories="true"/>
</Context>

によると:

JS/CSS/JSP ファイルF5がブラウザで更新されるようになりました。new .classinvokeを使用するためmvn compile。呼び出しをブートストラップするにはmvn package

于 2013-03-14T15:36:40.793 に答える