当前位置: 首页 > 知识库问答 >
问题:

GWT(Maven)项目:依赖冲突

骆文华
2023-03-14

我有一个具有以下依赖项的GWT项目

    <dependency>
        <groupId>com.google.gwt.inject</groupId>
        <artifactId>gin</artifactId>
        <version>2.1.2</version>
    </dependency>

    <dependency>
        <groupId>net.sourceforge.owlapi</groupId>
        <artifactId>owlapi-distribution</artifactId>
        <version>4.0.2</version>
    </dependency>

>

  • Gin 2.1.2依赖于guice 3.0,而owlapi 4.0.2依赖于guice 4.0-beta。

    gin在客户端使用,而owlapi在服务器端使用。

    我有什么办法才能让这件事成功?我是否可以在保留正常运行的GWT devmode的同时使用依赖关系范围?

  • 共有1个答案

    莫欣悦
    2023-03-14

    将项目拆分为不同的模块。考虑到Maven有限的依赖项作用域选项(按设计),这确实是一种可行的方法。

    对客户端代码使用一个模块,只使用客户端依赖项(Guice 3使用GIN),对服务器端代码使用一个模块,只使用服务器依赖项(Guice 4使用OWLAPI);并且让您的客户机模块将代码编译为JS并将其打包为WAR,您可以将其用作服务器模块中的“覆盖层”(如果您愿意,也可以使用依赖于客户机和服务器的第三个模块)。如果您有共享代码,请使用客户端和服务器模块都依赖的第三个/第四个共享模块;共享模块将调用maven-source-pluginjar-no-fork目标,因此客户端模块可以依赖于共享源。

    您可以在https://github.com/tbroyer/gwt-maven-archetypes找到遵循这种方法的原型。他们使用我的Maven插件for GWT,但早期版本(您必须克隆和mvn install然后从适当的提交项目)依赖于Mojo的Maven插件for GWT(我的插件设计时考虑了多模块项目,并且删除了以前使用Mojo插件时需要的大量黑客)。

     类似资料:
    • 由一些模块组成的maven项目。我的一个模块正在使用google版本的guava依赖项。现在,我正在我的项目中集成另一个模块,该模块也使用guava但版本。 因此,我希望新模块使用guava版本,而其余项目使用guava版本。我尝试将guava的添加到新模块中,但没有成功。 更新:@Guillaume Darmont的答案为不同的模块解决了问题。但现在我的问题是,新模块有两个依赖项,其中一个使用g

    • 我有两个Maven(GWT)项目,其中一个应该依赖于另一个。我只是添加了依赖项,比如: 这些类被正确引用,我可以在我的其他项目中使用它们。但如果我想触发maven构建,它会抱怨:“无法解析项目的依赖项:找不到工件myGroup:MyArtifact:jar:1.0-SNAPSHOT” 该项目没有jar,因为它是一个GWT Web应用程序。它有一个“战争”档案。我测试了一下论点,尝试了“pom”或“

    • Eclipse-Neon Maven Java原型-4项目 嗨,我生成了一个包含4个项目的maven原型? 请你帮我做那件事好吗。因为我试过但没有成功 我的尝试: 我添加了对BULK的框架依赖 我添加了对bulk_ear的框架依赖 但是当我安装Maven时,framework.jar没有打包到EAR。

    • 我有一个使用Gradle作为构建工具的项目和第二个使用Maven的POM的子项目。我没有在子项目上更改构建工具的自由。 我想要实现的是将我的项目添加到Maven POM中,作为我的Gradle项目的依赖项。 其中root(当前目录)是我的Gradle项目,并包含,Maven项目位于下,POM文件就在该目录下。 我在我的< code>build.gradle文件中尝试了这些变化: 第一次尝试: 第二

    • 我是maven的新手。(我已经搜索了几个小时的答案,但没有运气。mvn依赖:复制依赖不能解决我的问题)我需要复制项目的所有依赖项(以jar的形式),如果我的一个jar依赖于另一个工件,也复制该工件。 示例project1 pom。xml: “project1”依赖于project2。人工制品罐子当我使用“mvn依赖项:复制依赖项”时,我得到了project2。人工制品但我没有得到project3。

    • 我试图设置新的Web项目使用最新的Maven,GWT和Eclipse。我试图生成它与可用的原型从GWT Maven插件与命令: mvn原型:generate-DarchetypeGroupId=org。科德豪斯。mojo-DarchetypeArtifactId=gwt maven插件-DarchetypeVersion=2.4。0-DarchetypeRepository=repo1。专家组织机