Maven 安装 3rd 方 Jar 文件

Posted

技术标签:

【中文标题】Maven 安装 3rd 方 Jar 文件【英文标题】:Maven installing 3rd party Jar file 【发布时间】:2013-12-16 06:39:06 【问题描述】:

我正在使用 apache maven 3.1.1。我试图使用以下命令在我的本地存储库中安装第 3 方 Jar 文件

mvn install:install-file -Dfile=<path-to-file>

但是,我收到一条错误消息,指出当前运行 maven 的目录中没有 Pom 文件。根据 Maven install plug-in,如果 jar 文件是使用 Maven 创建的,它将在其中包含 POM xml(在这种情况下,POM 位于 META-INF 的子目录中的 jar 文件中)并且您不需要提供 POM 文件的路径。

我在这里错过了什么吗?

这是错误。

$ mvn install:install-file -Dfile=JDBM-3.0-alpha2.jar -ex
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.076s
[INFO] Finished at: Fri Nov 29 22:23:58 EST 2013
[INFO] Final Memory: 5M/147M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this     directory (/home/ars/Downloads). Please verify you invoked Maven from the correct directory. -> [Help 1]
org.apache.maven.lifecycle.MissingProjectException: The goal you specified requires a project to execute but there is no POM in this directory (/home/ars/Downloads). Please verify you invoked Maven from the correct directory.
atorg.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:89)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]     http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

【问题讨论】:

mvn -X install:install-file -Dfile=JDBM-3.0-alpha2.jar 是否提供更多信息? 是的,这里是调试信息的错误部分,打开了 -X 标志:[ERROR] Failed to execute goal org.apache.maven.plugins:maven- install-plugin:2.4:install - 项目独立上的文件(默认 cli)- pom:工件信息不完整或无效:[错误] [0] 'groupId' 丢失。 [错误] [1] 'artifactId' 丢失。 [错误] [2] 缺少“包装”。 [错误] [3] 缺少“版本”。 [错误] -> [帮助 1] 【参考方案1】:

我知道这个问题已经很老了,但这对我有用:

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=path/to/file

通过完全指定插件,您可以避免在该目录中没有项目 POM。

【讨论】:

可能还需要附加 -Dpackaging=jar 才能将 jar 文件复制到存储库。

以上是关于Maven 安装 3rd 方 Jar 文件的主要内容,如果未能解决你的问题,请参考以下文章

maven3.6.1-02初体验及jar包上传

Maven:将未知的jar文件导入存储库[重复]

OSGI - 处理 3rd 方 JAR 及其依赖项

在 OSGi 包中添加第三方 Maven 依赖项的最佳方法

如何在操场上安装 3rd 方依赖项(如 Alamofire)

创建具有 3rd 方依赖项的可安装 Django 应用程序