3

我需要知道是否有一个 Maven 项目,我可以在不生成 Maven 依赖项 (POM) 的情况下导入外部 (*.jar),只需将它们导入项目构建路径。

当项目向我询问我无法在网络中找到的其他依赖项时,我在尝试运行该项目时遇到了麻烦,并且我检查了这些依赖项是否没有必要,因为我检查了我的代码和 (*.jar )在一个不使用 Maven 的项目中并且它可以工作(无需导入该库)。

4

4 回答 4

2

您可以像往常一样将 jar 导入本地存储库并在 POM 中引用它。但是,每个开发人员都需要在他/她的机器上进行导入(一次)。

见:http: //jeff.langcode.com/archives/27

于 2013-01-02T14:39:40.290 回答
2

您需要在maven-install-plugininstall-file上使用目标:

mvn install:install-file -Dfile=your-artifact-1.0.jar \
                     [-DpomFile=your-pom.xml] \
                     [-Dsources=src.jar] \
                     [-Djavadoc=apidocs.jar] \
                     [-DgroupId=org.some.group] \
                     [-DartifactId=your-artifact] \
                     [-Dversion=1.0] \
                     [-Dpackaging=jar] \
                     [-Dclassifier=sources] \
                     [-DgeneratePom=true] \
                     [-DcreateChecksum=true]

如果您使用的是Nexus ,您可以手动上传 jar 。

于 2013-01-02T14:50:37.137 回答
1

您可以提供System Dependency

于 2013-01-02T14:40:06.273 回答
1

免责声明:以下内容仅适用于在多人共享同一个项目的环境中工作。如果您是一个人,那么所有建议都很好。

我不喜欢系统依赖或本地导入;在这两种情况下,您仍在管理每台机器的依赖关系,这是 Maven 应该从您身上带走的负担。

如果您确实有一个在任何在线 Maven 存储库中都找不到的依赖项,我宁愿采取艰难但更可靠的路线,那就是安装一个本地 Nexus 服务器,然后您还可以将其设置为 Maven 中央和JBoss Nexus,因此客户不必继续从 Internet 下载依赖项。这样一来,您就拥有了一台维护所有 Maven 依赖项的机器,这使它变得很好且可控。此外,您的 Nexus 更容易获得;如果您的 Internet 连接中断,外部 Maven 源可能会关闭或不可用。

然后,您可以在 Nexus 中安装您的 jars(在一个名为“第三方”的本地存储库中,这是我迄今为止在我工作过的公司中看到的一种常见策略)和您的 Maven 客户端,如果正确告知您的 Nexus 服务器是一个镜像,可以引用第三方 Maven 依赖项,就好像它们来自在线依赖项一样。

于 2013-01-02T15:15:59.413 回答