簡體   English   中英

為兩個客戶開發Java Web應用程序項目

[英]Java Web Application Project development for two clients

我正在開發一個基於Spring(MVC),Hibernate,PostgreSQL(使用Maven)的Web項目。 現在我正在嘗試讓一個新客戶在應用程序的幾個部分中需要一些差異。 我已經閱讀了Sonatype的Maven權威指南來了解多模塊Maven項目,但我最重要的問題之一還沒有得到解答:如何在幾個模塊/項目上共享通用視圖組件並根據它們進行集成對我想建立的客戶? 服務層非常清楚但我無法弄清楚如何共享jsp / jspf文件並在構建特定客戶模塊時將它們與自定義文件合並(然后依賴於通用模塊)。

您將如何避免僅僅克隆常用代碼?

我無法弄清楚如何共享jsp / jspf文件並在構建特定客戶模塊時將它們與自定義文件合並(然后依賴於通用模塊)。

這看起來像Overlays的一個很好的用例。

您可以將常用組件放在庫項目中,並根據需要使用依賴項解壓縮它們:unpackdependency:unpack-dependencies

例如,您的項目布局將是這樣的:

root
 |____ common-lib (jar, contains common java code)
 |____ common-gui (jar, contains only non-java stuff like js, jsp, css etc) 
 |____ client1    (war)
 |____ client2    (war)

client1和client2都會對common-lib有一個常規的compile依賴關系,但只有一個provided對common-gui的dependency:unpack (如果你使用dependency:unpack它根本不必是項目依賴)

現在,您將向您的客戶端項目添加這樣的代碼:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack-common-gui-elements</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>com.yourcompany</groupId>
                        <artifactId>common-gui</artifactId>
                        <version>${project.version}</version>
                        <type>jar</type>
                        <!--  war assembly directory -->
                        <outputDirectory>
                            ${project.build.directory}/${project.build.finalName}
                        </outputDirectory>
                        <includes>**/*.jsp,**/*.css,**/*.js</includes>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

這樣您就可以重新使用組件,但您可以隨時選擇將哪些組件分發給哪個客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM