gpt4 book ai didi

java - 如何在 Intellij Idea 中使用 Gradle 正确地将依赖项添加到同一级别的模块?

转载 作者:行者123 更新时间:2023-12-03 05:55:01 24 4
gpt4 key购买 nike

我有一个简单的 Java EE 项目,我将其移植到 Gradle。
我在 Intellij Idea 中创建的结构由以下子项目组成:

\ee_forum_gradle (Uses ear plugin and deploys both the ejb and web project)
\ee_forum_gradle_ejb
\ee_forum_gradle_web (Uses war plugin and is dependent on the ejb project)

我的问题是 web 项目依赖于 ejb 项目,每次我在 Intellij 中打开它时,我都必须在 web 项目中单击添加对模块 'ee_forum_gradle_ejb_main' 的依赖,因为每次 gradle 运行导入时,此设置都会丢失.

我尝试使用 gradle 将 ejb 项目导入到 web 项目中。
所以我加了
includeFlat 'ee_forum_gradle_ejb'

到 web 项目的 settings.gradle 和
compile project(':ee_forum_gradle_ejb')

到 web 项目的 build.gradle 文件。如果我尝试在 Wildfly 10 服务器上运行它,我会收到以下错误:
"WFLYCTL0412: Required services that are not installed:" => ["jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".deploymentCompleteService","jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".beanmanager","jboss.persistenceunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear/ee_forum_gradle_web-1.0-SNAPSHOT.war#forum-jpa\""],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_ejb-1.0-SNAPSHOT.jar\".component.PostBean.START is missing [jboss.persistenceunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear/ee_forum_gradle_web-1.0-SNAPSHOT.war#forum-jpa\"]","jboss.deployment.unit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".WeldStartService is missing [jboss.persistenceunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear/ee_forum_gradle_web-1.0-SNAPSHOT.war#forum-jpa\"]","jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".batch.environment is missing [jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".beanmanager]","jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".weld.weldClassIntrospector is missing [jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".beanmanager]","jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_ejb-1.0-SNAPSHOT.jar\".component.UserBean.START is missing [jboss.persistenceunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear/ee_forum_gradle_web-1.0-SNAPSHOT.war#forum-jpa\"]","jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_ejb-1.0-SNAPSHOT.jar\".component.ThreadBean.START is missing [jboss.persistenceunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear/ee_forum_gradle_web-1.0-SNAPSHOT.war#forum-jpa\"]","jboss.deployment.unit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".deploymentCompleteService is missing [jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_web-1.0-SNAPSHOT.war\".deploymentCompleteService]","jboss.deployment.subunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear\".\"ee_forum_gradle_ejb-1.0-SNAPSHOT.jar\".component.BoardBean.START is missing [jboss.persistenceunit.\"ee_forum_gradle-1.0-SNAPSHOT.ear/ee_forum_gradle_web-1.0-SNAPSHOT.war#forum-jpa\"]"]}

任何关于如何让这个 Gradle 项目运行的想法都非常感谢。就像我写的那样,如果我单击添加对模块的依赖项.. 项目运行成功,但我每次都必须重复此步骤。

最佳答案

好的,所以解决方案是使用

include('ee_forum_gradle_ejb')

在 web 项目的 settings.gradle 文件中,然后
providedCompile project(':ee_forum_gradle_ejb')

在 web 项目的 build.gradle 文件中。

我认为仅使用编译而不是提供编译的问题在于 ejb 项目被包含两次,这在某种程度上使服务器感到困惑。

关于java - 如何在 Intellij Idea 中使用 Gradle 正确地将依赖项添加到同一级别的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com