2014-03-06 54 views
0

我有一个应用程序部署为两个独立的Web项目 - w1 & w2。父项目P包含w1 & w2创建项目之间的依赖关系

已将代码添加到w1中,该代码使用w2上的代码,因此我需要将w2添加到w1的类路径才能使用此代码。 每个Web项目都应该是自包含的,因此创建这种依赖关系是一种不好的做法?另外,这是maven项目,所以为了 战争的构建,w2需要被创建为依赖。我认为这只是在项目之间的依赖管理问题上开放了很多问题。 我认为应该创建一个独立的jar项目,其中包含要共享的代码,然后将其添加为依赖项。

+0

_每个web项目都应该是独立的,这意味着你自己做所有事情。我怕它不是这样 – xyz

+0

检查maven覆盖,它可以帮助合并共享的web资源。但这是有点破解,真正的Web应用程序应该是独立的。 – setec

+0

它不会这样工作(使用从w1到w2的直接依赖关系)。战争依赖关系会自动作为覆盖应用(w1也会包含来自w2的所有内容)。但是,这在包装阶段中应用。所以在编译期间,你的w2代码不会被编译器看到,即w1甚至不会编译。请使用单独的jar作为依赖项。 – blackbuild

回答

1

是的,我会认为这是不好的做法。在运行时正确隔离战争类装载器的容器中,您会在w1项目中看到错误。如果你正在创建两个独立的战争,并希望重用一段代码/功能,我会建议创建一个第三个项目,构建到包含该功能的jar。您的两个Web项目可以将该库作为依赖包含在内。

1

是的。如果在w2中需要w1中的代码组件,反之亦然,则应将这些组件提取到单独的“公共”项目中,这两个项目都依赖于这两个项目。特别是因为你也有其他的依赖(Spring等)