2013-02-04 32 views
1

Maven有可能將公共控制器,jsp和其他資源共享到web模塊。Maven,多web模塊共享控制器,jsp,樣式,腳本

結構

WEB1(包裝罐子)

--main 
     --java 
      --controller 
       MyControllerToShared with @Controller annotation 
     --resources 
     --webapp 
      --scripts 
       javascripts files 
      --styles 
       css files 
      --WEB-INF 
       --views 
        jsp to share 
    pom.xml 

web2的(包裝戰)

Classic web app structure with dependency of web1.jar 

我的WEB2.0應用的工作原理,但沒有映射發現與URI HTTP請求在web1模塊中定義。我使用註釋@Controller和@RequestMapping。我在servlet.xml中定義了:

<context:component-scan base-package="controller" /> 
<mvc:annotation-driven/> 

如何在不同的Web模塊之間共享控制器和資源? 最後,我需要有3個公共事物(錯誤處理程序,jsp的錯誤,樣式,js,...)的Web應用程序。

回答

1

爲什麼不使用所有共享資源創建額外的項目?您可以在所有Web應用程序中重複使用它,只需將共享文件作爲依賴項包含在您的pom.xml中即可。

可以與共享資源的額外項目啓動:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>nl.connexys</groupId> 
    <artifactId>shared</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <name>Shared resources</name> 

</project> 

在你的web應用的項目就可以使用該項目作爲一個依賴:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>nl.connexys</groupId> 
    <artifactId>webapp</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>Webservice endpoints</name> 

    <dependencies> 
     <dependency> 
      <groupId>nl.connexys</groupId> 
      <artifactId>shared</artifactId> 
      <version>1.0-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
</project> 

但這一切都非常基本的Maven的東西。我認爲這些例子應該指向正確的方向。

+0

你有一個例子? – BasicCoder

+0

現在,您只需使用一個項目,您需要創建第二個項目並將其稱爲「共享」。我將編輯我的答案以添加一些代碼示例。 – evandongen

+0

好的上課。已經完成像你的例子。但對於jsp的? Jsp不包含在shared.jar中。 – BasicCoder