【问题标题】:installing a jar file created by maven to local repo将maven创建的jar文件安装到本地repo
【发布时间】:2014-06-18 18:11:13
【问题描述】:

我运行以下命令在本地存储库中安装自定义 jar:

mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file -Dfile=<path-to-file>

但是当我尝试这个时:

mvn install:install-file -Dfile=E:\jarFiles\utill-1.0.jar -DlocalRepositoryPath=E:\repo

它给了我以下错误:

The artifact information is incomplete or not valid:
[ERROR] [0]  'groupId' is missing.
[ERROR] [1]  'artifactId' is missin
[ERROR] [2]  'packaging' is missing
[ERROR] [3]  'version' is missing.

【问题讨论】:

  • 首先链接的标题谈到..custom POM。此外,如果您想将工件安装到本地存储库中,您可以使用 mvn install 来简单地做到这一点。
  • 您需要Specifying Maven's local repository location as a CLI parameter 的答案。如果它是永久更改,那么您可以在 ~/.m2/settings.xml 文件中指定它
  • no 在我在问题中发送的那个链接中,我的意思是这一行:如果 JAR 是由 Apache Maven 构建的,它将在 META-INF 目录的子文件夹中包含一个 pom.xml,其中默认会被读取。在这种情况下,您需要做的就是: mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file -Dfile=

标签: java maven


【解决方案1】:

您还必须提供这些信息(groupId、artifactId、包装、版本)。

mvn install:install-file  -Dfile=path-to-your-artifact-jar \
                          -DgroupId=your.groupId \
                          -DartifactId=your-artifactId \
                          -Dversion=version \
                          -Dpackaging=jar \
                          -DgeneratePom=true

查看here了解更多详情

【讨论】:

  • 是的,这是真的,但是如果您检查我在问题中发送的链接,它会说如果您使用 maven 生成了 jar 文件,则不需要提供此信息
  • @user3593084 : 检查 jar 是否包含 META-INF 目录下的 pom 文件
  • 是的,地址中有一个pom文件..\META-INF\maven\dependMav\utill
【解决方案2】:

这应该可行。

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

【讨论】:

  • 为什么应该这样工作?为什么提问者的代码不起作用?请在你的回答中解释!
  • 一个简单的install:install-file 为我使用了maven-install-plugin:2.4。但是,使用 jar 中找到的 pom 的功能显然只在maven-install-plugin:2.5 中引入,所以这确实解决了问题。
【解决方案3】:

大家好,我想再次提一下,当我提取 maven 创建的 jar 文件并将 POM.xml 文件复制到单独的位置并通过引用它来安装 jar 文件时。它工作得很好,但我不知道为什么我的第一个命令不起作用! 这是有效的命令;

  mvn install:install-file -Dfile=E:\jarFiles\utill-1.0.jar -DpomFile=E:\jarFiles\pom.xml -DloaclRepositoryPath=E:\repo 

顺便说一句,显然 mvn install 也可以正常工作并将 jar 文件安装到我的本地存储库。

【讨论】:

  • 也许我想补充一下 pom 文件的名称很重要,因为我重新运行命令并将 pom 文件重命名为 Notpom.xml 并且它工作正常。
【解决方案4】:

我认为错误说明了一切。您甚至不必绞尽脑汁就可以从中获取信息。这是一个相关的错误,直截了当。

参考: http://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/

使用您的mvn install 命令,您需要提供groupID、artifactId、包装和版本。检查您的 pom 以获取您构建 jar 的信息。

示例命令:

mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion={version} -Dpackaging=jar

【讨论】:

【解决方案5】:

我刚刚遇到了同样的问题,这是由于 cmets 中建议的 jar 文件损坏所致。我只是替换了它,该命令在没有任何额外的 groupid、包装等开关的情况下工作(因为它已经是一个 maven jar)。

事实证明,jar 被从 Windows 推送到 git repo 然后拉到 Linux 机器上被破坏了。解决方案是告诉 get jar 是二进制文件,因为它没有转换行尾 - 请参见此处:Jar file gets corrupted after pushing to github

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多