Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java XML文件未移动到jar的META-INF文件夹_Java_Maven_Maven Jar Plugin - Fatal编程技术网

Java XML文件未移动到jar的META-INF文件夹

Java XML文件未移动到jar的META-INF文件夹,java,maven,maven-jar-plugin,Java,Maven,Maven Jar Plugin,我正在用selectes包从代码库中创建一个jar。我还需要将xml文件移动到META-INF文件夹。但我不认为这会发生,尽管我的罐子被创建了 <build> <resources> <resource> <directory>${project.basedir}/src</directory> <includes> <include>jboss-e

我正在用selectes包从代码库中创建一个jar。我还需要将xml文件移动到META-INF文件夹。但我不认为这会发生,尽管我的罐子被创建了

<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>

${project.basedir}/src
jboss-ejb3.xml
ejb-jar.xml
${project.build.outputDirectory}/META-INF
org.apache.maven.plugins
maven jar插件
3.1.1
com/**/server/*EJB.class
com/**/common/*Remote.class


当我使用Maven资源插件时,我可以看到在目标文件夹中生成的META-INF文件夹。但是在jar中看不到相同的内容,这是通过使用用户建议的
META-INF/**
解决的,为什么不把它们放在
src/main/resources/META-INF
中呢?然后它们会被自动添加,无需添加资源插件。我也试过了。当我在不使用任何文件过滤器()的情况下创建一个jar时,这一点非常好。但是当我过滤某些包时,META-INF不会被移动到jar。当你使用include进行过滤时,你必须添加你想要包含的所有内容,包括
META-INF
。。。如果某个内容与include筛选器不匹配,它将被排除。但是为什么首先需要一个include过滤器呢?所有的东西都应该是罐子的一部分吗?我也试过了。但结果是一样的。我用的是下面的。src/main/resources/META-INF/jboss-deployment-structure.xml src/main/resources/META-INF/jboss-ejb3.xml com/**/server/*EJB.class com/**/common/*Remote.class您应该拥有
META-INF/**/code>而不是
src/main/resources/META-INF
,然后应该包含它。但是,为什么首先需要一个include过滤器呢。它过滤
目标
目录,而不是源。