主项目 - Intellij 中的 Maven 依赖项
Master project - Maven dependencies in Intellij
我目前以 IDE 的身份使用 Intellij,我有 4 个项目:
- 一个管理项目(包含前端的 java 和 ember)
- 一个 WS 项目(包含 WS)
- 一个 API 项目(包含对象、dao 等)
- 一个仅包含一个引用其他 3 个 pom 的主项目。
Admin 和 WS 依赖于 API。
我在 JBoss 中部署了所有内容。 Maven 全新安装有效,但我无法部署到 jboss:我收到 ClassNotFoundError:WS 在 API
中找不到 classes
我的主文件 pom 如下所示:
<dependencies>
<dependency>
<groupId>API</groupId>
<artifactId>API</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/.../api/target/API-1.0.jar</systemPath>
</dependency>
<dependency>
<groupId>WS</groupId>
<artifactId>WS</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/.../ws/www/target/WS-1.0.war</systemPath>
</dependency>
<dependency>
<groupId>Admin</groupId>
<artifactId>Admin</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/.../admin/www/target/Admin-1.0.war</systemPath>
</dependency>
</dependencies>
我使用 Maven 3.3.3 和 Jboss WildFly 8.2.1
在 Project Settings 中,我只是将 3 个 Maven 库(Admin、WS、API)放在
下
在 Jboss 配置的 Deployement 选项卡中,列出了 2 个 war(Admin、WS)和 jar(API)
我得到的错误:
- 无法在服务模块加载程序的模块 "deployment.WS-1.0.war:main" 中定义 class ...ws.endpoints.helpers.WS:java.lang.LinkageError:无法 link .../ws/endpoints/helpers/WS(来自服务模块加载器的模块 "deployment.WS-1.0.war:main")原因:java.lang.NoClassDefFoundError:.../dao/helpers/Dao 原因:java.lang.ClassNotFoundException:...dao.helpers.Dao来自 [模块 "deployment.WS-1.0.war:main" 来自服务模块加载器]
我做错了什么?有没有更好的方法来部署所有这些?
我还尝试使用本地 Maven 存储库来查找正确的 depedencies(删除了范围和系统路径),但我找不到它们,尽管它们位于 C:\users.m2 目录 [=11 下是正确的=]
提前致谢!
将范围指定为 'system' 意味着您的工件始终可用并且不会在存储库中查找,因此如果您在构建生命周期中构建这些工件 - "system" 范围不是正确的方法。
我会推荐:
1. 尝试打包您的工件并手动部署到 JBoss,只是为了确保它能正常工作
2. 然后用 JBoss 的 Maven 插件试试: http://docs.jboss.org/jbossas/7/plugins/maven/latest/examples/deployment-example.html
我目前以 IDE 的身份使用 Intellij,我有 4 个项目: - 一个管理项目(包含前端的 java 和 ember) - 一个 WS 项目(包含 WS) - 一个 API 项目(包含对象、dao 等) - 一个仅包含一个引用其他 3 个 pom 的主项目。
Admin 和 WS 依赖于 API。
我在 JBoss 中部署了所有内容。 Maven 全新安装有效,但我无法部署到 jboss:我收到 ClassNotFoundError:WS 在 API
中找不到 classes我的主文件 pom 如下所示:
<dependencies>
<dependency>
<groupId>API</groupId>
<artifactId>API</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/.../api/target/API-1.0.jar</systemPath>
</dependency>
<dependency>
<groupId>WS</groupId>
<artifactId>WS</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/.../ws/www/target/WS-1.0.war</systemPath>
</dependency>
<dependency>
<groupId>Admin</groupId>
<artifactId>Admin</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:/.../admin/www/target/Admin-1.0.war</systemPath>
</dependency>
</dependencies>
我使用 Maven 3.3.3 和 Jboss WildFly 8.2.1
在 Project Settings 中,我只是将 3 个 Maven 库(Admin、WS、API)放在
下在 Jboss 配置的 Deployement 选项卡中,列出了 2 个 war(Admin、WS)和 jar(API)
我得到的错误:
- 无法在服务模块加载程序的模块 "deployment.WS-1.0.war:main" 中定义 class ...ws.endpoints.helpers.WS:java.lang.LinkageError:无法 link .../ws/endpoints/helpers/WS(来自服务模块加载器的模块 "deployment.WS-1.0.war:main")原因:java.lang.NoClassDefFoundError:.../dao/helpers/Dao 原因:java.lang.ClassNotFoundException:...dao.helpers.Dao来自 [模块 "deployment.WS-1.0.war:main" 来自服务模块加载器]
我做错了什么?有没有更好的方法来部署所有这些? 我还尝试使用本地 Maven 存储库来查找正确的 depedencies(删除了范围和系统路径),但我找不到它们,尽管它们位于 C:\users.m2 目录 [=11 下是正确的=]
提前致谢!
将范围指定为 'system' 意味着您的工件始终可用并且不会在存储库中查找,因此如果您在构建生命周期中构建这些工件 - "system" 范围不是正确的方法。 我会推荐: 1. 尝试打包您的工件并手动部署到 JBoss,只是为了确保它能正常工作 2. 然后用 JBoss 的 Maven 插件试试: http://docs.jboss.org/jbossas/7/plugins/maven/latest/examples/deployment-example.html