我正在使用maven和gwt创建标准战争。我有很多依赖项,我已经设置了它,因为我部署的生产实例将提供它们。但是,我也在使用开发模式在GWT中开发应用程序,我真的需要能够在运行时在运行时利用这些依赖项,但是没有将它们编译到我的战争中。
我考虑过创建一个单独的maven模块,它只是聚合所有这些依赖项并赋予它们运行时范围,然后从该上下文运行我的开发模式。然而,这确实引入了很多我不愿意管理的开销。
这似乎是一个非常常见的问题,是否有人有更优雅的解决方案?
谢谢!
答案 0 :(得分:2)
此问题的解决方案是使用maven个人资料:http://maven.apache.org/guides/introduction/introduction-to-profiles.html
我为'dev'创建了一个,为'prod'创建了一个。开发者包括我所有的依赖关系,而prod只包括我想在战争中放置的东西。
我可以通过执行
来编译prod mvn clean install -P prod,\!dev
答案 1 :(得分:1)
这不是你想要的答案,但我想最好让dev环境尽可能地反映prod环境。
因此,我建议您在开发模式下提供依赖项,就像在生产中提供它们一样。
更好的是,您可以将这些依赖项移动到本地Nexus存储库。这样,无论您是在dev还是prod,都可以从同一个存储库中检索这些依赖项。 这实际上是“优雅”的做法。