2

是否可以使用package获得带有依赖关系的 Java jar ?ansiblemaven_artifact

现在来了解一下上下文:

  1. 我有一个简单的 Java 应用程序。这意味着我需要为这个应用程序生成一个jar-with-dependencies类型的 jar 才能作为一个独立的应用程序执行。
  2. 我在注册表中使用我的 jar mvn deploy(在我的例子中:Nexus)
  3. 我正在使用Ansible部署我的应用程序,使用包似乎是一个明智的选择maven_artifact(我想它比我更好地管理幂等性)。

非常合乎逻辑地,当我这样做时,我得到了简单的 jar(没有所有依赖项)而不是jar-with-dependenices

4

2 回答 2

3

您可以通过以下步骤执行此操作:

  • 确保您jar-with-dependencies的上传到 Nexus 具有特定的classifier,例如full。有关 的更多信息classifier,请查看Maven 文档
  • 使用Ansible maven_artifact 模块classifier属性指向您的full工件。
于 2018-11-27T11:33:04.377 回答
2

这是我的答案:

文件组织应该是:

roles/fetch-my-awesome-jar/tasks/main.yml

和内容:

---
- name: fetch my awesome jar
  maven_artifact:
    group_id: my.awesome.group.id
    artifact_id: my-awesom-artifact-id
    version: my.awesome.version.number
    classifier: jar-with-dependencies
    extension: jar
    repository_url: http://my-local-nexus:<port>/repository/my-awesome-repo/
    username: my-username
    password: my-password
    dest: my-awesome-target-directory

maven_artifact我正在使用的版本已删除jar-with-dependencies分类器。

于 2018-11-27T11:49:29.807 回答