首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向两个客户端的Java Web应用程序项目开发

面向两个客户端的Java Web应用程序项目开发
EN

Stack Overflow用户
提问于 2010-09-22 14:38:20
回答 2查看 1.3K关注 0票数 5

我正在开发一个基于Spring (MVC),Hibernate,PostgreSQL (使用Maven)的web项目。现在,我正在尝试获得一个新客户,他需要在应用程序的几个部分中有所不同。我已经阅读了来自Sonatype的Maven权威指南,以了解多模块Maven项目,但我最重要的问题之一还没有得到回答:如何在多个模块/项目上共享公共视图组件,并根据我想要为其构建的客户来集成它们?服务层非常清晰,但我不知道如何共享jsp/jspf文件,并在构建特定的customer-module (然后依赖于common-module)时将它们与自定义文件合并。

您将如何避免简单地克隆常用代码?

EN

回答 2

Stack Overflow用户

发布于 2010-09-22 15:43:07

我不知道如何共享jsp/jspf文件,并在构建特定的客户模块时将它们与自定义文件合并(然后依赖于公共模块)。

这看起来是Overlays的一个很好的用例。

票数 4
EN

Stack Overflow用户

发布于 2010-09-22 15:08:00

您可以将常用组件放入库项目中,并根据需要使用dependency:unpackdependency:unpack-dependencies将其解压缩

例如,你的项目布局应该是这样的:

代码语言:javascript
复制
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依赖,但对common-gui只有一个provided依赖(如果你使用dependency:unpack,它根本不需要是项目依赖)

现在,您可以将如下代码添加到客户端项目中:

代码语言:javascript
复制
<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>

通过这种方式,您可以重用您的组件,但您始终可以选择将哪些组件分发给哪个客户端。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3766873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档