java - 如何将文件添加到 EAR META-INF 文件夹 - Maven

标签 java maven jboss ear mbeans

我想从我的 EJB >META- 移动一个 startup MBEAN 文件 (startup-client-service.xml) INF,到EAR> META-INF文件夹。我尝试使用 maven-resources-plugin 插件,但它只是将文件从 EJB >META-INF 复制到 Targetear 文件夹中的。但是在内置的 ear 中,startup-client-service.xml 文件在 META-INF

中不可用

如何将我的启动文件移动到 META-INF 到 ear > META-INF 中?

这是ear的pom文件。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>com.testapp</groupId>
    <artifactId>my-client-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<name>Test app EAR</name>
<artifactId>my-client-ear</artifactId>

<packaging>ear</packaging>

<dependencies>

    <dependency>
        <groupId>com.testapp</groupId>
        <artifactId>my-client-ejb</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>ejb</type>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                </modules>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>META-INF</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.parent.basedir}/ejb/src/main/resources/META-INF</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        org.apache.maven.plugins
                                    </groupId>
                                    <artifactId>
                                        maven-ear-plugin
                                    </artifactId>
                                    <versionRange>
                                        [2.8,)
                                    </versionRange>
                                    <goals>
                                        <goal>
                                            generate-application-xml
                                        </goal>                                         
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

<profiles>
    <profile>
        <id>copy_bundle</id>
        <properties>
            <install.dir>${jboss.dir}\server\default\deploy</install.dir>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>Copying bundle to destination folder</id>
                            <phase>package</phase>
                            <goals>
                                <goal>run</goal>
                            </goals>
                            <configuration>
                                <tasks>
                                    <copy
                                        file="${project.build.directory}/${project.build.finalName}.${project.packaging}"
                                        overwrite="true" todir="${install.dir}" />
                                </tasks>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

下面是项目工作区的屏幕截图

Here is the project structure

最佳答案

正确的方法是将文件添加到src/main/application 而不是src/main/resources。 您还可以指定不同的 earSourceDirectory配置。

关于java - 如何将文件添加到 EAR META-INF 文件夹 - Maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026183/

相关文章:

java - UDDI 在网络服务中的作用?

连接工厂中的 java.lang.ExceptionInInitializerError

java - 如何使用maven项目在JavaFX中生成可执行jar

java - 绩效改进 - 如何开始

jboss - JBoss AS 7 中的 server.xml 等价物

java - 请一点正则表达式帮助 - 第 2 部分

java - 使用 Jenkins 在 Tomcat 服务器上部署后运行自动化脚本

java - com.google.android :android:jar:4. 4.2_r3 在哪里?

java - Guava 与 Jboss 8 (Wildfly) 和 Java 8 冲突

java - 用于单元测试的 Spring/Hibernate Autowire 非 JPA 存储库