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

时间:2019-05-28 16:55:14

标签: java eclipse maven m2eclipse

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

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

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

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

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

现在,我的问题是我不知道如何将Filenet JAR添加到项目中。我无法将它们上传到某些Maven存储库。搜索Web时说要将它们添加到本地存储库中,但是我不知道如何在Eclipse的内置Maven中将其添加到本地存储库中。

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

4 个答案:

答案 0 :(得分:2)

看到每个答案都涉及Maven,我将尝试提供一种不同的,有点古老的方法。您始终可以通过右键单击它->属性->添加罐子来将罐子直接导入到项目中。完成后涂抹,然后上油。这比了解Maven的复杂性要容易得多。

答案 1 :(得分:0)

需要在依赖项标记下的pom.xml中添加依赖项。 Maven将首次从Maven中央存储库下载指定的jar,并将其保存在本地存储库中。 如果依赖项在中央存储库中不可用,并且它们有自己的存储库,则需要在存储库标记中指定它。

<repositories>
    <repository>
         <id>repo-id</id>
         <name>repo-name</name>
         <url>http://repourl</url>
    </repository>
</repositories>

pom.xml中的任何更改,maven都会自动下载。

<dependencies>
   <dependency>
      <groupId>dependency-id</groupId>
      <artifactId>artifactid</artifactId>
      <version>1</version>
   </dependency>
</dependencies>

答案 2 :(得分:0)

如果罐子在Maven Central存储库中可用,那么您要做的就是在 pom.xml 文件的“依赖项”下添加依赖项。根据需要设置范围,就像您说的那样,不需要将jar打包在WAR文件中,因为它们可能在服务器上可用,那么您可以将范围设置为提供

<dependency>
  <groupId>groud-id</groupId>
  <artifactId>artifact-id</artifactId>
  <version>version-numbe</version>
  <scope>scope</scope>
</dependency>

如果jar在中央仓库中不可用,而您想将其安装在本地仓库中,则下面的命令应该可以为您提供帮助。更多信息here

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

答案 3 :(得分:0)

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

方法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或组织中的任何工件管理系统,并放置所有jar文件并提供自定义jar文件的定义。它将为您提供pom定义。基于此,您必须在项目pom.xml中添加依赖项。在这里,您可以维护n个版本的自定义jar文件。

相关问题