【问题标题】:Seam framework, maven-ear-plugin and Jboss as 5.1.0Seam 框架、maven-ear-plugin 和 Jboss as 5.1.0
【发布时间】:2023-12-22 13:56:01
【问题描述】:

谁能给我一个 pom.xml 的工作示例,它用于在 jboss 5.1.0 上构建和部署 ear 存档。
在我的应用程序中,我有两个模块 - web(.war 存档)和 java(.jar)。我正在尝试使用以下 pom.xml 完成上述任务

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <artifactId>tp</artifactId>
    <groupId>com.domain.project</groupId>
    <version>0.1</version>
</parent>
<groupId>com.domain.project</groupId>
<artifactId>build</artifactId>
<version>0.1</version>
<packaging>ear</packaging>
<name>project</name>

<repositories>
    ...
</repositories>

<build>

    <finalName>project</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jboss-maven-plugin</artifactId>
            <version>1.4.1</version>
            <configuration>
                <jbossHome>/opt/jboss-5.1.0.GA</jbossHome>
                <hostName>localhost</hostName>
                <serverName>default</serverName>
                <port>8080</port>
                <fileNames>
                    <fileName>${basedir}/target/${build.finalName}.ear</fileName>
                </fileNames>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.4.2</version>
            <configuration>
                <generateApplicationXml>true</generateApplicationXml>
                <jboss>
                    <modules>
                        <webModule>web.war</webModule>
                        <ejbModule>core.jar</ejbModule>
                    </modules>
                    <version>5</version>
                    <loader-repository>com.domain.project:loader=project</loader-repository>
                </jboss>
                <modules>
                    <webModule>
                        <groupId>com.domain.project</groupId>
                        <artifactId>web</artifactId>
                        <bundleDir>/</bundleDir>
                    </webModule>
                    <javaModule>
                        <groupId>com.domain.project</groupId>
                        <artifactId>core</artifactId>
                        <bundleFileName>core.jar</bundleFileName>
                    </javaModule>

                </modules>
            </configuration>
        </plugin>

    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>com.domain.project</groupId>
        <artifactId>core</artifactId>
        <version>0.1</version>
    </dependency>
    <dependency>
        <groupId>com.domain.project</groupId>
        <artifactId>web</artifactId>
        <version>0.1</version>
        <type>war</type>
    </dependency>
    <dependency>
        <groupId>org.jboss.el</groupId>
        <artifactId>jboss-el</artifactId>
        <version>1.0_02.CR4</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>org.jboss.seam</groupId>
        <artifactId>jboss-seam</artifactId>
        <version>2.2.0.GA</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-jpdl</artifactId>
        <version>3.2.2</version>
        <type>jar</type>
    </dependency>
</dependencies>

但是我遇到了以下异常
org.jboss.deployers.spi.DeploymentException:无法处理元数据

似乎 application.xml 或 jboss-app.xml 生成不好...任何帮助将不胜感激。

【问题讨论】:

    标签: jakarta-ee maven-2 jboss seam maven-ear-plugin


    【解决方案1】:

    重现您的项目结构和问题似乎很难(或至少很耗时)。出于这个原因,我的建议是使用Getting started with JBoss Seam and Maven in 10 seconds! 中宣布的原型来创建示例应用程序(具有按预期工作的构建)并模仿配置

    要引导项目,请运行以下命令:

    $ mvn原型:生成\ -DarchetypeGroupId=de.akquinet.jbosscc \ -DarchetypeArtifactId=jbosscc-seam-archetype \ -DarchetypeVersion=1.2\ -DarchetypeCatalog=http://seam-archetype.sourceforge.net/jbosscc-seam-archetype/1.2/archetype-catalog.xml ... 定义属性“groupId”的值::com.domain.project 定义属性“artifactId”的值::seam-demo 定义属性“版本”的值:1.0-SNAPSHOT:: 定义属性“包”的值:com.domain.project:: 定义属性'seamVersion'的值::2.2.0.GA 确认属性配置: groupId:com.domain.project artifactId:接缝演示 版本:1.0-SNAPSHOT 包:com.domain.project 接缝版本:2.2.0.GA 是:: ... [信息] 构建成功 ...

    然后cd进入seam-demo目录,运行mvn installapplication.xmljboss-app.xml都会在ear模块中生成。

    然后,使用您提供的 jboss-maven-plugin 配置将 ear 硬部署到为我工作的已启动 JBoss。

    【讨论】:

    • Pascal Thivent 谢谢.. 但问题是我已经手动实现了一个项目结构......我无法更改它......所以我不能使用那个原型...... . 无论如何谢谢
    • @Andrew 如果您仔细阅读我的回答,您会发现我建议您模仿您的耳朵配置(与您的不同,它正在工作) d 获得原型,而不是替换您现有的项目结构......
    • 它对我有用...我已经做了一些项目特定的更改,但通常答案解决了我的问题...谢谢!