【问题标题】:Maven dependency to jar in NexusMaven 对 Nexus 中 jar 的依赖
【发布时间】:2019-09-18 09:03:57
【问题描述】:

如何向我的私有 maven 存储库中的 jar 添加依赖项?

我有一个私有的 nexus 存储库,比如:https://localhost/repository/my-team/

在一个项目中,我生成、编译并将一些 java 类打包到一个 jar 中。比如说my.jar。 然后我把它作为一个jar上传到nexus:

curl --upload-file my.jar \ 
     "https://localhost/repository/my-team/com/example/artifact/my.jar"

在另一个项目中,我想将此 jar 称为依赖项:

<repositories>
     <repository>
        <id>nexus</id>
        <url>https://localhost/repository/my-team/</url>
    </repository>
</repositories>

在这种情况下如何添加依赖项?我在哪里指定该 jar 文件的 url?

【问题讨论】:

  • 使用 Maven 构建您的 jar 文件并将它们上传到 Nexus ...它更容易...不要通过 curl 等进行 ti。

标签: java maven dependencies nexus


【解决方案1】:

在 Maven 中,您不是通过 url 处理 jar,而是通过 GAV(GroupId、ArtifactId、Version)。

您不使用 curl 上传它,但您使用 mvn deploy(用于构建和部署 jar)或 mvn deploy:deploy-file(如果您已经有一个 jar 并想要部署它)。

它将使用pom.xml 中给出的 GAV(或坐标)进行存储。

然后您使用相同的 GAV 将其作为依赖项引用。

【讨论】:

  • 我很乐意使用 mvn deploymvn deploy:deploy-file,但我没有任何 maven 或 pom.xml。只需生成一些java代码,编译并打包到一个带有jar cf out/my.jar -C compiled/.的jar中并且该脚本在未安装的容器whaere maven中工作。有什么办法解决吗?
  • 是的,但你让你的生活变得艰难。有一个从 GAV 到 url 部分的标准翻译,它是通过用 / 而不是 . 编写 groupId 来构造的,然后是 artifactId,然后是 version,然后是 artifactId-version-classifier.extension。此外,您需要自己生成一个 pom.xml 并部署它,否则 Maven 项目将无法使用该依赖项。
  • 谢谢你,这在一天结束时真的很有帮助。我试图用它制作一个小型 maven 项目,但它揭示了其他问题,所以我决定采用 curl 方法。上传 groupId/artifactId/version/artifactId-version.jargroupId/artifactId/version/artifactId-version.pom 成功。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
  • 2019-04-23
  • 1970-01-01
  • 1970-01-01
  • 2010-11-18
相关资源
最近更新 更多