2017-08-16 16 views
0

オーバーレイを使用してjspのmaven Webアプリケーションのファイルを共有しようとしています。私のプロジェクトはpom.xmlcom.example.commonを参照してくださいので、私は、依存関係を作成し、私はMavenオーバーレイを使用して共有jspを呼び出す方法

src 
|__main 
    |__webapp 
     |__WEB-INF 
     |__view 
      |__app 
       |__example.jsp 

このディレクトリにcom.example.commonjsp年代を使いたい

  1. com.example.common
  2. com.example.child

から成りcom.example.childのようなこの

<dependency> 
    <groupId>com.example</groupId> 
    <artifactId>com.example.common</artifactId> 
    <version>1.0</version> 
    <type>war</type> 
</dependency> 

と終了時に、この

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
     <failOnMissingWebXml>false</failOnMissingWebXml> 
     <overlays> 
      <overlay> 
       <groupId>com.example</groupId> 
       <artifactId>com.example.common</artifactId> 
       <type>war</type> 
       <includes> 
        <include>**/*.jsp</include> 
       </includes> 
       <targetPath>WEB-INF/view</targetPath> 
      </overlay> 
     </overlays> 
    </configuration> 
</plugin> 

ようcom.example.childpom.xmlにオーバーレイを宣言し、これは私がcom.example.child

@RequestMapping(value = {"/getparentjsp"}, method = RequestMethod.GET) 
public String getParentJSP() { 
    return "app/example"; 
} 

とのコントローラからcom.example.commonjspを呼び出す方法です出力はHTTP Status 404 - /com.example.child/WEB-INF/view/app/example.jsp

ですそれがあるべき

/com.example.common/WEB-INF/view/app/example.jsp

に行く私はこのoverlay概念について逃した何がありますか?どんなヒントも非常に高く評価されます。助けてください。あなたは<overlay>属性を指定する必要はありませんデフォルト設定を使用し、その後、commonプロジェクトからすべてを含めるようにしている場合childプロジェクトで

答えて

0

<scope>runtime</scope> 

としてcommonプロジェクトの範囲を追加します。

設定を制御したい場合は、<targetPath>属性を削除してみてください。

オーバーレイの詳細はhereです。

+0

「」を指定せずに 'child'依存関係で宣言するだけで、' common'上のリソースを実際に共有できるのでしょうか? – lloistborn

+0

@lloistborn、はい、 'webapps'ディレクトリの下にある' css'、 'js'などのすべてのリソースを共有できます –

+0

問題は解決しましたか? –

関連する問題