【问题标题】:Ear project dynamic webapplication and mavenEar项目动态webapplication和maven
【发布时间】:2016-05-10 12:13:07
【问题描述】:

我必须创建一个动态网络应用程序。我必须从中创建一个耳朵文件。我也想用maven。在 Eclipse 中执行此操作的最佳方法是什么?

我找到了“maven-archetype-j2ee-simple”原型 (Create complete EAR Project with Maven and Eclipse Helios)。有人能告诉我我必须在哪个文件夹(控制器、测试、jsp 站点、java 类)中放入什么以及如何创建一个耳文件。

如果我运行 maven,我会得到错误

 Child module */site of */pom.xml does not exist

我只需要删除根 pom.xml 中的 <module>site</module> 即可摆脱此错误,但我什至不知道这个错误在做什么。为什么这个原型会出错?

此致!

【问题讨论】:

    标签: java eclipse maven web-applications ear


    【解决方案1】:

    这个原型似乎有一个错误(从 ejb 模块的外观来看它已经很老了),你可以从父 pom 中删除站点模块,我认为它应该是一个 maven 站点。

    但是,我建议您不要使用此原型。

    从 maven-archetype-webapp 创建一个 war 项目,然后创建你自己的 parent 和你自己的 ear 项目来打包 war。

    父母看起来像这样:

    <modules>
            <module>poc-war</module>
            <module>poc-ear</module>
    </modules>
    

    ear pom 将依赖于 war 项目并使用 maven ear 插件生成一个 ear:

    <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>net.isban</groupId>
                    <artifactId>poc</artifactId>
                    <version>1.0-SNAPSHOT</version>
            </parent>
    
            <artifactId>poc-ear</artifactId>
            <packaging>ear</packaging>
    
            <description>EAR deployment </description>
            <name>FMIS EAR</name>
    
            <dependencies>
                    <dependency>
                            <groupId>net.isban</groupId>
                            <artifactId>poc-war</artifactId>
                            <version>${project.version}</version>
                            <type>war</type>
                    </dependency>
            </dependencies>
    
            <build>
                    <finalName>${project.artifactId}-${project.version}</finalName>
                    <plugins>
                            <plugin>
                                    <artifactId>maven-ear-plugin</artifactId>
                                    <version>2.10.1</version>
                                    <configuration>
                                            <skinnyWars>false</skinnyWars>
                                            <filtering>true</filtering>
                                            <modules>
                                                    <webModule>
                                                            <groupId>net.isban</groupId>
                                                            <artifactId>poc-war</artifactId>
                                                            <contextRoot>/poc</contextRoot>
                                                    </webModule>
                                            </modules>
                                    </configuration>
                            </plugin>
                    </plugins>
            </build>
    
    </project>
    

    【讨论】:

    • 嘿,我创建了 2 个简单的 maven 项目。一个包装绒球和另一只耳朵。和 1 个 maven-archtype-webapp 项目。然后我将ear项目和war项目复制到父项目中并修改pom.xml。它工作正常。但是在复制粘贴之后,webapp projetct 没有像 Librarys、Java Resources Javascript Resurces 这样的文件夹。所以我想在eclipse中有更好的方法吗?
    • skinnyWars 决定所有库的去向,在这种情况下,它设置为 true,因此所有 jib jar 都在 war 文件中。如果您设置为 false,它们将在耳朵中。我个人喜欢他们在战争中。
    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 2013-10-07
    • 2012-11-03
    • 2016-09-22
    相关资源
    最近更新 更多