当前位置: 首页 > 面试题库 >

如何使用Maven将Implementation-Version值添加到jar清单中?

祁刚毅
2023-03-14
问题内容

我想在jar文件中的清单中添加体现版本行,以反映POM版本号。我一辈子都无法解决如何使用jar插件做到这一点。

这可能吗?


问题答案:

您将使用Maven存档器:

<plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>

这会将以下内容添加到清单文件中:

Implementation-Title: ${pom.name}
Implementation-Version: ${pom.version}
Implementation-Vendor-Id: ${pom.groupId}
Implementation-Vendor: ${pom.organization.name}


 类似资料:
  • 问题内容: 使用maven-jar-plugin时, 我想向Manifest.mf添加条目, 因此它将包含: Class-Path:。 当我将此条目添加到Pom时: 它将创建具有所有依赖项的Class-Path,例如 : Class-Path:。jar1name.jar jar2name.jar等 不仅仅是 类路径:。 有没有一种方法可以避免maven将所有jar名称添加到Class-Path?

  • 有,它对1)很有效。但是,我找不到一个还包括非maven依赖项的maven插件,例如。 然后是Eclipse插件,它可以工作,但自2009年以来就没有更新过,所以看起来没有维护。另外,我更喜欢在中直接指定的导出方法。 有人能给我指出插件之类的东西来导出所有引用的库(包括案例2)吗?这只需要将它们放入jar并在清单的类路径中引用它们。 谢了!

  • 有一些相关的问题,但它们并没有完全回答这个问题: 在构建之前将jar添加到maven本地存储库 maven-assembly-plugin不添加系统作用域的依赖项

  • 我(终于)能够使用本指南将我的Android库发布到AWS S3 maven存储库。它作为 AAR 而不是 JAR 文件发布,这意味着即使生成的 POM 文件列出了其所有内部依赖项,在将库添加到另一个项目时也会忽略它们。似乎是一个非常普遍的问题。我从中了解到,我只需要在 maven 清单中列出依赖项,但这是如何完成的呢? 我真的是一个新手,所以越简单越好...谢谢! 注意:我也发现了这个问题,所以

  • 如何直接在项目的库源中添加本地jar文件(还不是Maven存储库的一部分)?

  • 问题内容: 如何将本地jar文件添加到Maven项目? 问题答案: 如下所示将JAR安装到本地Maven存储库中: 其中每个都指: :要加载的文件的路径,例如→ :文件应注册的组,例如→ :文件的工件名称,例如→ :文件的版本,例如→ :文件的包装,例如→