文档章节

EAR项目构建的几种方式

fastjrun
 fastjrun
发布于 2016/07/16 08:45
字数 746
阅读 82
收藏 0

PS:说实话,在写这篇帖子之前,我也没用过EAR,因此该贴仅是记录学习过程用~有什么不对的地方,或者欠缺的,还请各位看官斧正,先谢过各位了~~ 一、基于传统WebProject方式 在eclipse中,右键new > project > Dynamic web project , 在弹出的对话框中输入项目名称testWeb,注意,在EAR membership中勾选上“Add project to an EAR”,并输入准备创建的EAR的名称,例如TestEAR, 再创建几个Web project,此时可以选择需要加入的EAR的名称,这里,我们都选择TestEAR, 每个web project,我们都可以随意的写些测试页面,以供测试使用。 在TestEAR项目上,右键 > properties 弹出的面板中,进入 project facets条目,可以看到,该项目特征为EAR,且被选中。 在该EAR项目目录下的EarContent文件夹下创建META-INF/application.xml,该文件是设置ear打包时需要包含相关资源的配置文件。样例如下: [html] view plain copy print?

<?xml version="1.0" encoding="UTF-8"?>

<application id="testEAR" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<display-name>TestEAR</display-name>
<module id="WebModule_testA">
<web>
<web-uri>testA.war</web-uri>
<context-root>.testA</context-root>
</web>
</module>

<module id="WebModule_testB">  
    <web>  
        <web-uri>testB.war</web-uri>  
        <context-root>.testB</context-root>  
    </web>  
</module>  
  
<module id="WebModule_testC">  
    <web>  
        <web-uri>testC.war</web-uri>  
        <context-root>.testC</context-root>  
    </web>  
</module>  

</application>

display-name设置部署显示的名称,module定义一个被包含的资源,可以是EJB的jar,也可以是一个子系统的war,上面这个例子中都是引入的war,因此用web作为标签。web-uri声明被引入的war路径,context-root声明访问路径(相对于该EAR项目)。

在TestEAR项目上右键 export 选择EAR file,即可导出ear文件,用压缩包程序打开TestEAR.ear文件可以看到该ear包含的war文件。

二、基于maven-ear-plugin插件构建EAR项目 1、创建一个maven webapp,将packaging类型选为ear <packaging>ear</packaging> 2、添加包含的war、jar等依赖,如下: [html] view plain copy print? <dependency>
<groupId>com.test</groupId>
<artifactId>test</artifactId>
<version>0.0.1</version>
<type>war</type>
</dependency>

3、添加maven-ear-plugin插件,并配置 [html] view plain copy print? <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10</version>
<configuration>
<!-- 打包指定目录到lib -->
<defaultLibBundleDir>lib/</defaultLibBundleDir>
<!-- 将多个war的共享包提取到父级别 -->
<skinnyWars>true</skinnyWars>
<modules>
<webModule>
<moduleId>webdemo-framework</moduleId>
<groupId>com.test</groupId>
<artifactId>framework</artifactId>
<bundleFileName>test-framework.war</bundleFileName>
</webModule>
<webModule>
<moduleId>webdemo-test</moduleId>
<groupId>com.test</groupId>
<artifactId>test</artifactId>
<bundleFileName>test.war</bundleFileName>
</webModule>
</modules>
</configuration>

</plugin>

4、很大可能在配置完上面的内容后,pom文件会报错,例如: Maven Project Build Lifecycle Mapping Problem Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-ear-plugin:2.10:generate-application-xml (execution: default-generate-application-xml, phase: generate-resources) 解决方案如下:(参考帖子>>传送门) 在plugins同级增加一组pluginManagement标签,在插件管理中,对lifecycle-mapping进行配置 [html] view plain copy print? <build>

    <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.4.0,)</versionRange>  
                                    <goals>  
                                        <goal>generate-application-xml</goal>  
                                    </goals>  
                                </pluginExecutionFilter>  
                                <action>  
                                    <ignore />  
                                </action>  
                            </pluginExecution>  
                        </pluginExecutions>  
                    </lifecycleMappingMetadata>  
                </configuration>  
            </plugin>  
        </plugins>  
    </pluginManagement>  
    <plugins>  
          
    </plugins>  
</build>  

如此,可解除上述错误~

本文转载自:http://blog.csdn.net/shangyue1110/article/details/45506829

fastjrun

fastjrun

粉丝 23
博文 48
码字总数 22716
作品 3
海淀
架构师
私信 提问
Java混淆器--Allatori

Allatori(非开源软件)是一个Java obfuscator属于第二代obfuscators的家庭,因此它的所有频谱的机会保护你的知识产权。 Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字...

匿名
2008/10/05
7.1K
0
使用Maven构建和部署J2EE应用程序的EAR文件

这篇文章。主要是技术上的整理,用来mark一下,用的时候參考。 一、新建项目 新建一个空的Maven Project项目 二、放入依赖 注:ear部署时假设里面有entity,会错误发生。所以不要把entity放到...

技术mix呢
2017/11/16
0
0
jenkins远程发项目至tomcat 的异常处理

jenkin发布项目至tomcat,项目很多人都有做过,今天遇到了一个小问题,执行远程发布时提示用户权限不够。异常提示如下 : Caused by: org.codehaus.cargo.container.tomcat.internal.Tomcat...

GarenBean
2016/03/25
450
0
MyEclipse部署配置(多图)

MyEclipse 30天免费试用版 1. 自定义部署项目 MyEclipse支持使用灵活的部署来对项目进行装配部署,灵活的部署支持允许你自定义最终归档是如何装配的。例如,你可以只映射源文件夹的一个 子集...

百mumu
2016/06/17
20
0
用maven构建的ejb项目如何在myeclipse中运行?

情景:我用maven构建了一个ear项目,这个项目中包含一个ejb项目,我的IDE使用的是myeclipse6.5,并且安装了m2插件。 过程:我用m2插件运行了 install命令,在ejb项目的target文件夹下生成了一...

整理秀逗的脑袋
2011/10/11
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
5
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部