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

Maven:在JAR的META-INF中包含文件

皇甫文乐
2023-03-14

我正在使用 Maven 来构建一个 Java 项目,我有几个文件,更改日志许可证,我想将它们复制到 JAR 文件内的元 INF 目录中。

到目前为止,我的工作如下:

<build>
    <resources>
        <resource>
            <directory>${project.basedir}</directory>
            <includes>
                <include>CHANGELOG</include>
                <include>LICENSE</include>
            </includes>
            <targetPath>META-INF</targetPath>
        </resource>
    </resources>
    <plugins>
        ...

但这也会在编译时将这两个文件复制到类/META-INF 目录中。

所以我希望这些文件包含在JAR文件中,而不是其他地方。有办法做到这一点吗?

共有3个答案

雷逸仙
2023-03-14

通过添加网络资源来修改你的pom

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <webResources>
                    <resource>
                        <directory>target/classes/META-INF/</directory>
                        <includes>
                            <include>*.*</include>
                        </includes>
                        <targetPath>META-INF/</targetPath>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

考虑要在以下位置找到的配置文件。

src / main / resources / META-INF / config.properties
华英睿
2023-03-14

如果要将文件和目录添加到META-INF文件夹,请在pom.xml中使用此代码

   <build>
        <finalName>CustomJsfComponents</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**.xml</include>
                    <include>**resources/**</include>
                </includes>
                <targetPath>META-INF</targetPath>
            </resource>
        </resources>
    </build>
刘明朗
2023-03-14

您不需要指定任何自定义maven配置来满足您的需求。

src/主/资源中,只需创建一个 META-INF 文件夹并将文件放在这里即可。
通过这种方式,您可以在构建的 JAR 的元 INF 文件夹中找到它们。

此外,您应该删除

 类似资料:
  • 我正在Eclipse中处理一个Java项目,该项目是使用Maven构建的。我使用的是一个旧项目中的一些循环代码,其中一个类在JAR的文件夹中查找一个具有特定名称的文件,然后解析该文件的文本。在这个特定的示例中,它查找一个具有Java接口名称的文件,然后从文件内部获取实现的类名。

  • 问题内容: 我正在使用Eclipse构建Java项目,该项目是使用Maven构建的。我使用的是旧项目中的一些再生代码,这些类之一在JAR文件夹中查找具有特定名称的文件,然后解析该文件的文本。在此特定示例中,它将查找具有Java接口名称的文件,然后从文件内部获取实现的类名称。 因此,基本上我想做的是 在JAR的“ META-INF / services”文件夹中包含一个文件名(X)和一行文本(Y)的

  • 我正在Eclipse中处理一个Java项目,该项目是使用Maven构建的。我使用的是一个旧项目中回收的代码,其中一个类在JAR的文件夹中查找具有特定名称的文件,然后解析该文件的文本。在这个特定的例子中,它查找一个名为Java接口的文件,然后从文件中获取实现的类名。 所以基本上,我要做的是在JAR的“META-INF/services”文件夹中包含一个文件,文件名为(X),一行文本为(Y)。我猜这应

  • 我有一个结构如下的maven项目: 我希望maven jar插件在构建jar文件时打包到数据库文件夹中。我尝试过包含这里概述的内容:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它找不到目录“../database”(或../../database或../../../database

  • 我正在为SAP hana云平台开发一个需要UnlimitedJCEPolicyJDK8的实现。文档告诉我需要将其置于以下结构下: WAR文件:meta-inf-ext_security-jre8 问题是,当我包含JAR时,它会转到WEB-INF/类,而服务器并不在这方面。如图所示。 尝试了以下操作: 使用eclipse web部署程序集添加文件(无论出于什么原因,它似乎不能与maven一起工作,是

  • 如果我想使用jar实用程序创建一个没有META-INF废话的jar文件,我可以传递-m开关,它将: 我已经有了创建jar文件的配置,而且我不想再搞砸另一个插件...