【问题标题】:XML files not moving to META-INF folder of jarXML 文件未移动到 jar 的 META-INF 文件夹
【发布时间】:2019-09-05 07:13:33
【问题描述】:

我正在使用选择包从我的代码库中创建一个 jar。我还需要将 xml 文件移动到 META-INF 文件夹。但是虽然我的 jar 被创建了,但我没有看到这种情况发生。

<build>
<resources>
    <resource>
        <directory>${project.basedir}/src</directory>
        <includes>
            <include>jboss-ejb3.xml</include>
            <include>ejb-jar.xml</include>
        </includes>
        <targetPath>${project.build.outputDirectory}/META-INF</targetPath>
    </resource>
</resources>

 <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
            <includes>
                <include>com/**/server/*EJB.class</include>
                <include>com/**/common/*Remote.class</include>
            </includes>
            <!-- <archive> -->
                <!-- <addMavenDescriptor>false</addMavenDescriptor> -->
            <!-- </archive> -->
        </configuration>
    </plugin>
</plugins>

当我使用 Maven-resource-plugin 时,我可以看到目标文件夹中生成的 META-INF 文件夹。但在 jar 中看不到相同的内容。

【问题讨论】:

  • 为什么不把它们放在src/main/resources/META-INF 中呢?然后会自动添加,不需要添加资源插件。
  • 我也试过了。当我在不使用任何文件过滤器 () 的情况下创建 jar 时,这完全可以正常工作。但是当我过滤某些包时,META-INF 不会被移动到 jar 中。
  • 当您使用 include 过滤时,您必须添加您想要包含的所有内容,包括 META-INF... 如果某些内容与 include 过滤器不匹配,它将被排除。但是为什么你首先需要一个包含过滤器呢?不应该一切都只是罐子的一部分吗?
  • 也试过了。但同样的结果。我使用如下。 src/main/resources/META-INF/jboss-deployment-structure.xmlsrc/main/resources/META-INF/jboss-ejb3.xmlcom/**/server/*EJB.class com/**/common/*Remote.class
  • 你应该有 META-INF/** 而不是 src/main/resources/META-INF 然后它应该被包括在内。但是,为什么您首先需要一个包含过滤器。它过滤 target 目录而不是源。

标签: java maven maven-jar-plugin


【解决方案1】:

用户 M.Deinum

建议使用 &lt;include&gt;META-INF/**&lt;/include&gt; 解决此问题

【讨论】:

    猜你喜欢
    • 2020-11-03
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2015-01-26
    • 2013-01-24
    相关资源
    最近更新 更多