java - 带有 ejb 模块的 Maven ear 项目。生成 application.xml 时出错

标签 java maven configuration

当编译以下 pom 时,我得到一个异常,说明项目中缺少 core 依赖项:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-ear-plugin:2.8:generate-application-xml (default-generate-application-xml) on project theear: Artifact[ejb:com.myapp:core] is not a dependency of the project. -> [Help 1]

theear 是这样设置的:

<project ...>
    ...

    <artifactId>theear</artifactId>
    <packaging>ear</packaging>

    <dependencies>
        <dependency>
            <groupId>com.myapp</groupId>
            <artifactId>web</artifactId>
            <version>${application.web.version}</version>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>

        <!-- myapp projects -->
        <dependency>
            <groupId>com.myapp</groupId>
            <artifactId>core</artifactId>
        </dependency>

        ...
    </dependencies>

    <build>
        <finalName>theear</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <modules>
                        <webModule>
                            <groupId>com.myapp</groupId>
                            <artifactId>web</artifactId>
                            <contextRoot>/web</contextRoot>
                            <bundleFileName>web.war</bundleFileName>
                        </webModule>
                        <ejbModule>
                            <groupId>com.myapp</groupId>
                            <artifactId>core</artifactId>
                            <bundleFileName>core.jar</bundleFileName>
                        </ejbModule>
                    </modules>
                    <defaultLibBundleDir>lib/</defaultLibBundleDir>
                    <skinnyWars>true</skinnyWars>
                </configuration>
            </plugin>
            ...
        </plugins>
    </build>
</project>

核心项目是这样的:

<project ...>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>core</artifactId>
    <version>1.0.0.Pre-Alpha</version>
    <packaging>ejb</packaging>

    <dependencies>
        ...
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <ejbVersion>3.1</ejbVersion>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

正如你所见,ear 清楚地将核心模块列为依赖项

注意:缺少版本,因为此 pom 将聚合 pom 声明为具有相应 dependencyManagement 标记的父级。

请问这是什么原因造成的?

最佳答案

我遇到了 this网站,问题是我没有包含 <type>ejb</type>列出核心依赖项时的元素。

完整的依赖应该是这样的:

    <dependency>
        <groupId>com.myapp</groupId>
        <artifactId>core</artifactId>
        <version>1.0.0.Pre-Alpha</version>
        <type>ejb</type>
    </dependency>

我不知道为什么,但是当您将类型指定为 ejb 时,maven 会提示没有版本。

关于java - 带有 ejb 模块的 Maven ear 项目。生成 application.xml 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885358/

相关文章:

java - web.xml 与编程方法

php - date_default_timezone_set ('UTC' ) 不工作

java - 覆盖 jdbc 第三方 jar 中的方法

java - 在 servlet (Java/Tomcat/Linux) 中使用我自己的类

spring - Quartz 调度程序未启动。在待机模式

java - IntelliJ中使用的是哪个maven右键->maven->reimport

Java Hashmap - 多线程放置

java - 无法为大图像文件创建缩略图

maven - 什么时候可以安全删除本地Maven存储库?

java - Intellij 项目 View : not show multiple classes in same file