startup MBEAN
ファイル(startup-client-service.xml)
をEJB
> META-INF
からEAR
> META-INF
フォルダーに移動したい。 maven-resources-plugin
プラグインを試してみましたが、ファイルをEJB
> META-INF
からTarget
フォルダーのear
にコピーするだけです。ただし、ビルドされたear
では、startup-client-service.xml
ファイルはMETA-INF
では使用できません。
スタートアップファイルをMETA-INFのear> META-INFに移動するにはどうすればよいですか?
これは耳の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>
以下は、プロジェクトワークスペースのスクリーンショットです。
正しい方法は、src/main/application
ではなくsrc/main/resources
にファイルを追加することです。別の earSourceDirectory 構成を指定することもできます。
パッケージの準備フェーズでMavenリソースプラグインを使用して、ファイルを$ {build.directory}/$ {project.artifactId}-$ {project.version}/META-INFフォルダーにコピーすることをお勧めします。最終的なEARはから圧縮されます。フェーズ準備パッケージは、EARが圧縮される直前です。
Mekondeltaの提案に基づいて、maven-Assembly-pluginを使用してEARMETA-INFにファイルを追加することに成功しました。私の場合、ファイルは私のプロジェクトの「src/main/resources/META-INF」の下に保持されている**。properties *です。
私のPOM.XMLには、次のビルド構成があります。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<version>5</version>
<defaultLibBundleDir>lib/</defaultLibBundleDir>
<skinnyWars>true</skinnyWars>
<jboss>
<version>5</version>
<loader-repository>mcsa:loader=my-application</loader-repository>
<loader-repository-config>Java2ParentDelegation=false</loader-repository-config>
<data-sources>
<data-source>my-ds.xml</data-source>
</data-sources>
</jboss>
</configuration>
</plugin>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>make-metainf</id>
<!--<phase>initialize</phase>-->
<phase>generate-resources</phase>
<configuration>
<!--<finalName>.</finalName>-->
<finalName>${project.artifactId}-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/resources/metainf-Assembly.xml</descriptor>
</descriptors>
</configuration>
<goals>
<goal>directory</goal>
</goals>
</execution>
</executions>
</plugin>
</build>
metainf-Assembly.xmlは次のとおりです。
<Assembly xmlns="http://maven.Apache.org/plugins/maven-Assembly-plugin/Assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/plugins/maven-Assembly-plugin/Assembly/1.1.2
http://maven.Apache.org/xsd/Assembly-1.1.2.xsd">
<id>meta-data</id>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>dir</format>
</formats>
<fileSets>
<fileSet>
<directory>${project.build.directory}/filtered-resources/META-INF/</directory>
<outputDirectory>META-INF</outputDirectory>
<includes>
<include>*.properties</include>
</includes>
</fileSet>
</fileSets>
これが完全な例です
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-resources</phase>
<goals>
<goal>resources</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/${project.artifactId}-${project.version}
</outputDirectory>
<resources>
<resource>
<directory>${project.parent.basedir}/ejb/src/main/resources/META-INF</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
...
私はmaven-resources-pluginを使用してそれを行うことができました
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/${env.APPLICATION_NAME}/META-INF/</outputDirectory>
<resources>
<resource>
<directory>src/main/application/</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
注:リソースはsrc\main\application\META-INF\weblogic-application.xmlに配置する必要があります