当前位置: 首页 > 知识库问答 >
问题:

如何在maven阴影jar中嵌入工件信息

冯福
2023-03-14

我想在阴影罐子中记录maven工件在阴影罐子中的实际结果。

所有的包都被合并了,这使得很难仅仅通过查看JAR来确定到底有哪些工件进入了其中。

对于maven shade插件,这是完全可能的吗?

先谢谢你,菲尔。

共有1个答案

邹星火
2023-03-14

您可以使用maven完成此操作,以下步骤需要遵循:

1-在src/main/resources下创建一个文件,该文件将包含以下内容的信息,例如information.txt:

version=${project.version}
artifactId=${project.artifactId}
groupId=${project.groupId}

2-激活Maven筛选

 <project>
      ...
      <build>
        ...
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>**/information.txt</include>
            </includes>
          </resource>
          ...
        </resources>
        ...
      </build>
      ...
    </project>

有关插件的更多信息。

 类似资料:
  • 我想通过SFTP将构建的jar和所有依赖项上传到我的Raspberry PI。因此,我尝试使用maven-deploy-plugin。 正如您已经看到的,上载的jar是一个被重命名的带阴影的jar 此外,我包含了wagon-ssh扩展,并定义了Raspberry PI: 但是,如果我执行mvn:deploy,maven只会将原始的-jar上传到Raspberry Pi的文件路径groupId、ar

  • 我需要从shade插件中排除log4j工件,以避免log4j漏洞,但是,artifactSet下的exclude标记似乎不起作用。有没有解决这个问题的建议? 我不断发现以下错误:未能执行目标组织。阿帕奇。专家插件:maven shade插件:3.2.4:shade(默认值)on project:目标组织的执行默认值。阿帕奇。专家插件:maven shade插件:3.2.4:shade失败:插件组织

  • 根据我的理解,包含/排除只是白名单/黑名单,所以我不能显式地强制包含一些没有包含在实际依赖列表中的内容。 为了获得更多的上下文,我有一个JAR依赖项,它包含一个资源,我只希望它包含在我的shade工件中,但是在类路径上使用该JAR会导致错误。 明确地说,我希望在一个调用中生成一个带有附加依赖项的阴影jar,以及一个没有附加依赖项的普通jar。

  • 问题内容: 我正在使用“ shade” Maven2插件来构建将所有Java依赖项捆绑在一起的整体式JAR。中的相关部分非常简单: 但是,构建结果很奇怪。似乎两个文件实际上是由该Maven插件创建的: 带有前缀“原始”的JAR文件已正确构建,并且功能正常。我想我可以将其重命名以删除该前缀,然后继续愉快地进行下去。 但是,我对“ shade”插件在这里可能发生的情况非常好奇。看起来“原始”文件是临时

  • 我试图使用maven-shade-plugin来区分Java6和Java7工件。从这个链接我的理解是原来的神器会被阴影的那个替换掉 然而,它正在安装没有阴影分类器。下面是我的shade插件配置:

  • 以下部分显示了my pom.xml中shade插件的配置: 然而,一些被排除的文件(似乎??)被偷偷地放入输出jar文件中: 那么,阴影插件配置中有什么不正确的地方呢?