多模块 maven gwt 项目 - 托管模式问题中的依赖关系解析

发布于 2024-12-06 23:31:12 字数 1171 浏览 1 评论 0原文

最近,我将 GWT 2.4 应用程序拆分为两个 Maven 模块:domainwebapp。域模块(根据其名称)包含域类,而 webapp 包含所有其他与 GWT 相关的内容。 Webapp 取决于

一切都与这里描述的几乎相同: http://mojo.codehaus.org/gwt-maven-plugin /user-guide/multiproject.html

当我运行(从reactor)时:

mvn clean package

maven适当地构建应用程序WAR:首先编译domain,然后编译webapp,接下来创建可以部署的war文件在 tomcat 上并且工作正常。 但是,如果我尝试在托管模式下运行应用程序:

mvn gwt:run

maven 会尝试解决对本地存储库和远程存储库中的 domain 模块的依赖关系。由于我已从本地存储库中删除了它,maven 找不到它并且构建(托管模式)失败。当然,我可以先将 domain 模块安装到我的本地存储库中,但这对我来说像是一个肮脏的解决方法。 已从本地 Maven 存储库中有意删除,以确保托管模式使用从本地存储库获取的旧(过时)版本运行,而不是使用之前构建的强>神器。

如果 domain 模块安装在我的本地存储库中,则在 mvn clean package 完成后,webapp 目标目录包含带有最新版本 >域 JAR。当我运行 gwt:run 时,新版本的域工件(在目标中)被替换为从本地存储库中获取的过时版本(我可以看到更改)!

这怎么可能?这是 gwt maven 插件的错误吗?有什么办法可以避免这种奇怪的插件行为吗?

Recently I've split my GWT 2.4 application into two maven modules: domain and webapp. Domain module (according to its name) contains domain classes and webapp contains all other GWT-related stuff. Webapp depends on domain.

Everything is almost the same as described here:
http://mojo.codehaus.org/gwt-maven-plugin/user-guide/multiproject.html

When I run (from reactor):

mvn clean package

maven builds application WAR appropriately: first it compiles domain, then webapp, next creates war file which can be deployed on tomcat and works fine.
However, if I try to run application in the hosted mode:

mvn gwt:run

maven tries to resolve dependency to domain module in my local repository and remote repositories. Since I've deleted it from my local repo, maven can not find it and build (hosted mode) fails. Of course I can install domain module into my local repo first, but it's smells like a dirty workaround for me. Domain has been removed from local maven repository intentionally in order to make sure that hosted mode runs with the old (outdated) version taken from local repo, instead of working with the previously built domain artifact.

If domain module was installed in my local repository, after mvn clean package completed, webapp target directory contains exploded WAR with the recent version of domain JAR. When I run gwt:run, new version of domain artifact (in target) is replaced with the outdated one taken from local repo (I can see changes)!

How is this possible? Is it a bug in gwt maven plugin? Is there any way to avoid such strange plugin behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城仅有旧梦在 2024-12-13 23:31:12

这对你来说可能是一个解决方案吗?
http://mojo.codehaus.org/gwt-maven-plugin /user-guide/productivity.html
对我来说它有效。我也有不同的模块。在链接的帮助下,我可以在域模块中进行更改,然后只需重新启动托管模式即可。但并不适用于所有更改。

might this be a solution for you?
http://mojo.codehaus.org/gwt-maven-plugin/user-guide/productivity.html
For me it works. I have different modules as well. With the help of the link I can make changes in the domain module and simply restart the hosted mode. Doesn't work for all changes though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文