Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将第三方JAR添加到Maven项目_Java_Eclipse_Maven_M2eclipse - Fatal编程技术网

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

Java 如何将第三方JAR添加到Maven项目,java,eclipse,maven,m2eclipse,Java,Eclipse,Maven,M2eclipse,我的专业领域不是Java。我在其他平台上用其他语言开发 现在我正在为一个项目开发一系列Java servlet。servlet将在运行FileNetP8的CentOS服务器上运行 实际上,我已经完成了所有计划项目并开始运行 现在,当我尝试添加更多服务时,我遇到的库可以通过Maven访问。我不知道Maven是什么。今天读一读。创建了一个测试项目来进行测试 我的开发环境是Windows10上的EclipsePhoton 现在我的问题是我不知道如何将Filenet JAR添加到项目中。我无法将它们上传

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

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

实际上,我已经完成了所有计划项目并开始运行

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

我的开发环境是Windows10上的EclipsePhoton

现在我的问题是我不知道如何将Filenet JAR添加到项目中。我无法将它们上传到某个Maven repo。搜索Web需要将它们添加到本地repo中,但我不明白如何在Eclipse的内置Maven中对本地repo执行此操作


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

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

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

回购id
回购协议名称
http://repourl
如果pom.xml中有任何更改,maven将自动下载它

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

依赖项id
人工的
1.

如果JAR在Maven Central repo中可用,那么您所要做的就是在您的pom.xml文件的dependencies部分下添加依赖项。根据需要设置范围,就像您所说的JAR不需要打包在WAR文件中,因为它们可能在服务器上可用,然后您可以将范围设置为提供的

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

地面id

mvn安装:安装文件-Dfile=-DgroupId=-DartifactId=-Dversion=-dpacking=

我根据您的适用性提供以下检查方法

方法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
mvn安装:安装文件\
-D文件=\
-DgroupId=\
-DartifactId=\
-D版本=\
-dpackage=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>

您自己的自定义组id
您自己的自定义工件id
一些版本号
上述方法的缺点是,只有当它安装在.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>

some.group.id
一些
有些,版本号
系统
${project.basedir}/libs/yourActualJarFileName.jar
上述方法的缺点是,必须将所有jar文件放在一个目录中,并且必须提供路径。所有jar文件都应该是项目的一部分,这意味着所有jar文件都应该放在源代码存储库中。尽管它符合目的,但仍然不是一个好方法。如果您有一个较新/更高版本的jar文件,那么您必须再次将其放入lib目录中。这意味着您已经管理了所有旧版本和新版本的jar文件

最佳方法


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

鉴于每个答案都涉及maven,我将尝试提供一种不同的、有点老派的方法。您可以通过右键单击项目->属性->添加JAR,将JAR直接导入到项目中。完成后应用,瞧。这比理解maven的复杂性要容易得多。

编译实际需要filenet JAR吗?如果是,则它们是范围编译依赖项。您可以通过安装步骤将JAR与项目一起带到本地。如果编译不需要filenet JAR,并且是由Websphere提供的,那么提供的范围就足够了。如果依赖项在项目外部,您应该查看它们是否在Maven Central中可用。如果它们是为您的项目在内部创建的,则它们在中央存储库中不可用。在这种情况下,您需要mvn将它们部署到本地.m2或内部Maven存储库中。安装FileNet后,可以从中下载它们是的,需要编译它们。我们开始吧!!谢谢你的回复。该页面显示了安装Maven时是如何完成的。正如我所提到的,我正在使用内置于Eclipse中的Maven。正如我所提到的,这些文件不在任何Maven存储库中。正如@sambit在方法2中所说的,如果JAR存在于本地系统中,您可以在依赖项中添加JAR的位置。我试过了。现在,缺少的JAR红色下划线在源代码中消失,单击buildworks。然而,没有选择出口到战争。另一个页面说右键单击项目并选择Maven->Maven Build。这样做会给我JAR缺少的编译错误。你可以随时maven clean>安装你的项目来构建项目的WAR。不过,我不确定您之前所做的是否会起作用,因为JAR不是maven依赖项。方法2似乎更有可能起作用。文件是否应位于/libs o中
<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>