13

我已将 JAR 复制到src\main\webapp\WEB-INF\lib.
我使用日食。如果我将罐子一一添加到项目-> Java 构建路径-> 添加罐子,然后我执行项目-> Maven-> 更新项目配置,它们将被 Maven 删除。并且 Eclipse 显示错误,其中包含“无法解析 xxx”。

Env:
Eclipse Java EE IDE for Web Developers.
Version: Indigo Service Release 1
Build id: 20110916-0149

m2e - Maven Integration for Eclipse 1.0.100.20110804-1717

注意:我不想创建自己的 Maven 存储库。它只会使用一次。
我应该如何进行?

4

5 回答 5

18

并非所有库都可以在公共 Maven 存储库中找到,例如您自己的库或专有库。无论如何,首先你可以搜索 Maven Repository,也许其中一些在那里。

如果它们真的不存在,并且您不想安装NexusArtifactory,您可以选择以下两种方法之一:

  • 将 jars 安装在本地存储库缓存中,无需创建特殊存储库。请参阅mkyong 上的说明

  • 另一种方法是使用系统依赖项,您只需在文件系统中放置一条到达 Jar 的路径。这是一种不太推荐的方法,但如果你真的想要它会起作用。这是官方文档

于 2011-10-06T10:24:17.457 回答
3

添加一个Systems Dependency


如果您想将此(使用 jquantlib 作为示例)添加到 maven 本地存储库中,请使用:

mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar

为了做到这一点,我使用了一个批处理文件

@echo off

cd lib

CMD /C "mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-helpers-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-helpers -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4-ubber.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-ubber -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-samples -Dversion=0.2.4 -Dpackaging=jar"

CMD /C "mvn install:install-file -Dfile=./ta-lib-0.4.0.jar -DgroupId=com.tictactec -DartifactId=ta-lib -Dversion=0.4.0 -Dpackaging=jar"

您可以在其他系统上使用类似的脚本文件。

于 2011-12-03T08:16:19.180 回答
0

我相信除非您别无选择,否则不应使用系统依赖方法,那是因为您在这里失去了整个“构建可移植性”。当然,您可以将 jar 与项目的源文件一起存储在源代码控制系统中,但我认为这也不是一个好方法......

仅使用 install:install-file 还不够好 - 这确实会以正确的格式将 jar 部署到本地存储库中,但是当您移动到另一台计算机并开始在那里构建项目时会发生什么?你需要再做一次。

因此,如果您不想安装 nexus/artifactory(我相信这是最好的解决方案),您可能应该创建另一个存储库(仅在某些服务器上的文件系统中),并在那里部署 jar(您可以按照此处的建议使用 mvn install:install-file ,然后复制整个树)。现在您可以配置 apache Web 服务器并通过 http 访问包含所有 jar 的目录。我不认为它比 nexus/artifactory 方法更好,但如果您熟悉 apache Web 服务器,它可能会更容易一些。为了让您的 Maven 了解这个新存储库,您需要编辑 %MAVEN_HOME%\conf\settings.xml 文件

于 2011-12-03T08:41:17.543 回答
0

至少有三种方法可以将 3rd 方 JAR 添加到 Maven 项目中。

  1. 使用 mvn install 命令手动安装
  2. 使用以下标记系统在 pom 依赖项中添加 jar 文件的位置
  3. 创建一个指向 jar 位置的“虚拟”maven 存储库。

虽然上面已经建议了方法 1 和 2,但我将专注于第三种方法,我发现它更简洁,不需要任何 mvn 命令,并且可以从任何 IDE 中直接使用。

第 1 步:在 pom.xml 中添加本地“虚拟”存储库的位置

<repositories>
    <repository>
        <id>repo</id>
        <name>repo</name>
        <url>file:${project.basedir}/src/main/resources/lib</url>
    </repository>
</repositories>

这里的“虚拟”存储库位置是我的项目目录的“lib”文件夹

第 2 步:将 jar 依赖项添加到您的 pom.xml

    <dependency>
        <groupId>com.cloudera.impala</groupId>
        <artifactId>impala-frontend</artifactId>
        <version>0.1-SNAPSHOT</version>
    </dependency>

选择任何 groupId 但确保 artifactId 和 version 是格式<artifactId>-<version>.jar(第 3 方 jar 的名称)

第 3 步:根据步骤 2 中提到的 groupId、artifactId 和版本在本地“虚拟”存储库中创建文件夹结构。所以在这种情况下,文件夹结构将是/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/

将您的 jar 放在版本文件夹中并构建您的项目。您将获得以下输出,它将您的“虚拟”存储库视为您的 3rd 方 jar 的提供者。

[INFO] Downloading from repo: file:C:\Users\skumar\eclipse-workspace\chdQueryBuilder/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/maven-metadata.xml
[INFO] Downloading from repo: file:C:\Users\skumar\eclipse-workspace\chdQueryBuilder/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/impala-frontend-0.1-SNAPSHOT.pom
[WARNING] The POM for com.cloudera.impala:impala-frontend:jar:0.1-SNAPSHOT is missing, no dependency information available
[INFO] Downloading from repo: file:C:\Users\skumar\eclipse-workspace\chdQueryBuilder/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/impala-frontend-0.1-SNAPSHOT.jar
[WARNING] Could not validate integrity of download from file:C:\Users\skumar\eclipse-workspace\chdQueryBuilder/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/impala-frontend-0.1-SNAPSHOT.jar: Checksum validation failed, no checksums available
[WARNING] Checksum validation failed, no checksums available from repo for file:C:\Users\skumar\eclipse-workspace\chdQueryBuilder/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/impala-frontend-0.1-SNAPSHOT.jar
[INFO] Downloaded from repo: file:C:\Users\skumar\eclipse-workspace\chdQueryBuilder/src/main/resources/lib/com/cloudera/impala/impala-frontend/0.1-SNAPSHOT/impala-frontend-0.1-SNAPSHOT.jar (7.0 MB at 79 MB/s)
[INFO] 

于 2020-05-03T20:59:00.073 回答
-1

要添加不在本地存储库中的外部 JAR 文件,只需右键单击主源文件夹并从构建路径菜单中选择:“配置构建路径”,然后导航到库选项卡并单击“添加外部 JAR 文件”。接下来,找到要添加为库的 JAR(或 zip)文件,然后单击确定。

恭喜,您现在已成功将外部 JAR(或 zip)添加到构建路径中,您现在可以从项目中的该 JAR 文件导入任何类,而不会引发错误Picture How-To :) http://hostthenpost.org/上传/541be8420657320c74489ff8d456ad08.png

于 2016-04-11T18:48:33.393 回答