java - 如何导入jar的所有依赖项?
问题描述
我有两个 java maven 项目——eclipse 中的 abc 和 intellij idea 中的 xyz。它们有一些常见的 jar 依赖项。
在 xyz 代码中,我需要调用 abc 的 test 目录中的一些代码。因此,我将 abc 转换为 jar 并将其导入到 xyz 中。调用 abc 方法的 xyz 代码编译得很好,但是因为找不到 abc 所需的 jar 而失败。其中一些缺失的 jar 实际上存在于 xyz 中,但有些则没有。
如何让 xyz 导入 abc 所需的所有依赖项?这是重用代码的好方法吗?
解决方案
这样做的正确方法:
mvn install
通过在“abc”文件夹中运行,将“abc”项目安装到本地 Maven 存储库中。(这将首先构建项目,然后将 JAR 和 POM 复制到本地 Maven 存储库中。)- 并将其添加为“xyz”项目中的依赖项:
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>abc</artifactId>
<version>...</version>
</dependency>
</dependencies>
这样,“xyz”项目在类路径上也会有“abc”和“abc”的依赖。
编辑:可以通过这种方式重用测试类:
- 添加
maven-jar-plugin
以“abc”为目标的构建插件test-jar
,它会创建测试类的 JAR:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 安装“abc”(将安装常规 JAR,测试 JAR 和 POM)
- 添加为依赖项并引用
test-jar
分类器:
<dependencies>
<dependency>
<groupId>...</groupId>
<artifactId>abc</artifactId>
<version>...</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
推荐阅读
- linux - 使用套接字传输时间
- android - Android Studio 代码复制粘贴问题
- python - 使用 Zenpy 从 Zendesk 获取增量数据
- windows - iis 应用程序未出现在性能监视器中
- php - 在本地主机上执行时,laravel 中的 AWS SES 显示错误
- php - 更新:未找到 Laravel View []
- windows - 试图找到与 Ansible 一起使用的 Windows 组策略密钥
- python - 喂。我想将一些值从一个 df 替换为另一个
- sapui5 - 第二次选择项目时拆分应用程序不调用视图
- bnf - 如何实现表达式的优先级 Bakus-Naur 形式