java - 如何将第 3 方 JAR 添加到 Maven 项目

标签 java eclipse maven m2eclipse

我的专业领域不是Java。我在其他平台上使用其他语言进行开发。

现在我正在为一个项目开发一系列 Java servlet。这些 servlet 将在运行 FileNetP8 的 CentOS 服务器上运行。

我实际上已经完成并运行了所有计划的项目。

现在,当我尝试添加更多服务时,我遇到的库可以通过 Maven 访问。我不知道 Maven 是什么。今天阅读一下。创建了一个测试项目来尝试一下。

我的开发环境是 Windows 10 上的 Eclipse Photon。

现在我的问题是我不知道如何将 Filenet JAR 添加到项目中。我无法将它们上传到某些 Maven 存储库。搜索网络说将它们添加到本地存储库,但我不明白如何在 Eclipse 内置 Maven 中的本地存储库中执行此操作。

我认为 JAR 不需要打包在部署 WAR 中,因为应用程序将部署到运行 Filenet 的 Websphere 服务器上,因此它们应该在该服务器上可用。我应该将它们添加为外部 JAR 引用来编译项目吗?

最佳答案

我在下面提供了以下方法来根据您的适合性进行检查。

方法 1:手动安装

如果您只有 1 个 jar 文件,请根据您的要求替换执行以下命令。

mvn install:install-file \
   -Dfile=<file path location> \
   -DgroupId=<your own custom group id> \
   -DartifactId=<your own custom artifact id> \
   -Dversion=<some version number> \
   -Dpackaging=jar \
   -DgeneratePom=true

完成后,在项目 pom.xml 的依赖项部分使用以下内容。

<dependency>
    <groupId>your own custom group id</groupId>
    <artifactId>your own custom artifact id</artifactId>
    <version>some version number</version>
</dependency>

上述方法的缺点是,只有您可以使用它,因为它安装在您的 .m2 目录中。对于其他开发人员来说,他们必须遵循相同的方法。这不是建议的方法。

方法2:手动添加jar文件的位置

在pom.xml中添加以下依赖

<dependency>
    <groupId>some.group.id</groupId>
    <artifactId>some.artifat.id</artifactId>
    <version>some.version.no</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/libs/yourActualJarFileName.jar</systemPath>
</dependency>

上述方法的缺点是,您必须将所有 jar 文件放在一个目录中,并且必须提供路径。所有的 jar 文件都应该是项目的一部分,这意味着所有的 jar 文件都应该放在源代码存储库中。虽然它达到了目的,但仍然不是一个好方法。如果您有更新/更高版本的 jar 文件,您必须再次将其放入 lib 目录中。这意味着您已经管理了所有新旧版本的jar文件。

最佳方法

维护 Nexus 或 Artifactory,或组织中的任何 Artifact 管理系统,放置所有 jar 文件并提供自定义 jar 文件的定义。它将为您提供 pom 定义。基于此,您必须在项目 pom.xml 中添加依赖项。在这里您可以维护自定义 jar 文件的 n 个版本。

关于java - 如何将第 3 方 JAR 添加到 Maven 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56346917/

相关文章:

java - 如何在android中解析来自.NET Web服务soap对象的XML数据?

java - Eclipse Gradle集成无法正常工作

java - 如何返回收到的mongodb数据?

maven - 添加 CORS 支持后 Tomcat 应用程序启动失败

java - 在java中如何比getResponseCode更快地获取http响应代码?

java - 如何从 Flutter 中的 Unique Key Firebase 检索所有值?

java - 重构 - 应合并可折叠的 "if"语句

java - Maven 多线程构建 : force the packaging module to run last

maven - 测试NG。需要在所有测试之前运行特定方法,在所有测试之后运行特定测试

java - GWT RPC - 每个应用程序多个 RPC 服务