java ee maven

  • 第一部分 ,
  • 第2部分 ,
  • 第3部分 ,
  • 第4部分 ,
  • 第5部分 ,
  • 第6部分 ,
  • 第7部分
  • 第8部分

自上一篇文章以来,这一系列教程已经有很长时间了。 是时候恢复并在我们的简单项目中添加新功能了。 正如我在以前的文章中提到的那样,该系列文章主要针对Maven和JavaEE7新手,我欢迎对以下内容有任何疑问或意见(和修正)。 我保证我会努力跟上更新。

这个帖子的Git标签?

该帖子的标签是post8 ,可以在我的bitbucket存储库中找到。

与以前的帖子相比有什么变化?

  • 读者的代码注释和修复已集成在一起。非常感谢您的参考。
  • 我已经将Wildfly应用服务器版本从8.1更新到8.2,因此所有示例和代码都在新服务器下运行。
  • 我还将Arquillian BOM的版本更新为最新的版本1.1.7.Final
  • 我还在样例父项目下添加了一个属性,该属性指示各种maven模块将自动下载并使用Wildfly服务器的路径,这样您就不必自己下载它。 一旦您尝试执行先前文章中的单元测试之一,服务器将自动下载并提取到预定义的路径(sample-services模块)
    <!--path to download wildfly--><wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>

在我们的耳朵上添加启用了JSF的war Maven模块

最终,我们的项目结构已经出现了战争(请参见sample-web)

Maven模块。 因此,没有引入任何额外的模块,而是对父级和模块本身的现有pom.xml文件进行了更改。

步骤1在web.xml上更改

我们的应用程序服务器已经捆绑了必需的库和设置,以支持使用JSF 2.2规范的应用程序。 Wildfly捆绑了Mojarra 2.2.8 。 我们要做的只是更新一些配置描述符(最终只有一个)。 最重要的是web.xml,现在看起来像这样。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><context-param><param-name>javax.faces.PROJECT_STAGE</param-name><param-value>Development</param-value></context-param><servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>/faces/*</url-pattern></servlet-mapping><session-config><session-timeout>15</session-timeout></session-config><welcome-file-list><welcome-file>faces/index.xhtml</welcome-file></welcome-file-list>
</web-app>

第2步:打包战争和瘦身的战争问题

我们的战争模块遵循一种称为“瘦身战争”的包装方案。 请从Apache maven war插件阅读以下页面 。 长话短说,为了减小部署能力(耳朵)的整体大小,我们将所有必需的库打包在耳朵级别的预定义文件夹下,通常称为\ lib,并且不包括在下面的库战争的WEB-INF \ lib文件夹。 您唯一需要做的就是将战争的相关性添加到耳边。 尽管实际上整个“ hack”感觉都不是专家,但如果遵循建议的配置,它就可以工作,但是在某些情况下,瘦小的战争包装将无法工作。 其中之一通常用于基于JSF的JavaEE Web应用程序,其中应将JSF小部件引擎的实现打包在战争的WEB-INF \ lib中。

对于我们的示例项目,我使用了出色且免费的Primefaces库 ,我强烈建议您将其用于下一个基于JSF的项目。 因此,我需要为primefaces jar定义对war模块的依赖关系,但要通过仅针对此jar的瘦war机制,以便将其打包在正确的位置。 这是我们的做法。

<!-- from the war module pom.xml --><!-- This is the dependency --> <dependency><groupId>org.primefaces</groupId><artifactId>primefaces</artifactId><version>${primefaces-version}</version></dependency><!-- See the packaging exclude, we exclude all the jars apart from the one we want
to be bundled within the WAR --> <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><packagingExcludes>%regex[WEB-INF/lib/(?!primefaces).*.jar]</packagingExcludes><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><Class-Path>sample-services-${project.version}.jar</Class-Path></manifestEntries></archive></configuration></plugin>

步骤3添加一些jsf爱,一个托管bean和带有适当标签的xhtml页面。

我们的代码只是一张小桌子,还有几个Primefaces的标签。 如果您认为需要阅读有关JSF 2.X的更多信息,请访问以下链接

  • JSF神灵之一(BalusC)的JSF 2.2教程
  • Primefaces文档
  • Primefaces展示柜
  • JavaEE教程– Oracle的JSF 2.2
  • JSF 2.2示例

步骤4打包并部署到正在运行的服务器。

启动您的wildfly(预计您的项目库目录和子文件夹服务器下应有一个)

<wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>

然后在样本父项目类型下。

mvn clean install -Ph2

您应该在http:// localhost:8080 / sample-web /上具有启用了JSF 2.2的演示应用程序,并看到类似以下内容的内容。

就是这样,这将为您提供一个简单的起点,以便扩展除演示之外的其他功能!

与往常一样,您将在标记post8下找到完整的示例。

翻译自: https://www.javacodegeeks.com/2015/03/java-ee7-and-maven-project-for-newbies-part-8.html

java ee maven

java ee maven_针对新手的Java EE7和Maven项目–第8部分相关推荐

  1. java ee maven_针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom...

    java ee maven 为什么呢 很多时候,我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题. 为了提供解决方案,我经常最终会尝试项目结构,测试我在不同应用程序服务 ...

  2. java ee maven_针对新手的Java EE7和Maven项目–第6部分

    java ee maven 从前面的部分恢复 第1 部分 , 第2 部分 , 第3 部分 , 第4 部分 , 第5部分 在上一篇文章(第5部分)中,我们发现了如何使用Arquillian(我们的EJB ...

  3. java ee maven_针对新手的Java EE7和Maven项目–第7部分

    java ee maven 从前面的部分恢复 第1 部分 , 第2 部分 , 第3 部分 , 第4 部分 , 第5 部分 , 第6部分 在上一篇文章(第6章)中,我们发现了如何使用Arquillian ...

  4. java ee maven_针对新手的Java EE7和Maven项目–第5部分–使用Arquillian / Wildfly 8进行单元测试...

    java ee maven 从前面的部分恢复 第1 部分 , 第2 部分 , 第3 部分 , 第4部分 , 这是第一篇"额外"文章,基于我在该系列博客文章中"构建&quo ...

  5. ejb的maven_针对新手的Java EE7和Maven项目-第3部分-定义ejb服务和jpa实体模块

    ejb的maven 从前面的部分恢复 第1部分 第2部分 我们在第三部分继续介绍,我们已经有一个父pom,并且已经为我们的war模块定义了pom. 在我们的原始设置中,我们定义了我们的应用程序将包含一 ...

  6. java ee maven_真正释放Maven和Java EE的强大功能

    java ee maven 如果野心和愿景太复杂而无法使用,则它们可能会淘汰伟大的解决方案. 尽管Maven和Java EE是在整个Java行业中都已建立的良好技术,但是使用它们并使用其作者打算使用的 ...

  7. 针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom

    为什么呢 很多时候,我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题. 为了提供解决方案,我经常最终会尝试项目结构,测试我在不同应用程序服务器上的部署并细化我的配置. ...

  8. 针对新手的Java EE7和Maven项目–第6部分

    从前面的部分恢复 第1 部分 , 第2 部分 , 第3 部分 , 第4 部分 , 第5部分 在上一篇文章(第5部分)中,我们发现了如何使用Arquillian(我们的EJB服务)进行单元测试,并将其部 ...

  9. 针对新手的Java EE7和Maven项目-第3部分-定义ejb服务和jpa实体模块

    从前面的部分恢复 第1部分 第2部分 我们在第三部分继续介绍,我们已经有一个父pom,并且已经为我们的war模块定义了pom. 在我们的原始设置中,我们定义了我们的应用程序将包含一个ejb jar形式 ...

最新文章

  1. void函数调用时显示不允许使用不完整的_C语言的角落——这些C语言不常用的特性你知道吗?...
  2. 用于模拟短信群发情况的随机数产生
  3. html5设计图的状态栏标准高度,HTML5 canvas自适应手机屏幕宽高度大小
  4. JVM学习笔记(四)
  5. elementui表格宽度适应内容_elementui表格中的列怎么实现自适应列宽
  6. 面试常见java异常题_Java异常面试题(含答案)
  7. 【转】SpringCloud学习
  8. luhn算法java_Java信用卡验证– Java中的Luhn算法
  9. Qt5 自创简单音乐视频播放器(基础版)
  10. MikroTik RouterOS安装chr授权到阿里云虚拟机(转)
  11. Java-注解第一篇认识Annotation
  12. 如何用python画矿物分布地图_python怎么画出分布图?
  13. vue全家桶+element-UI
  14. linux识别csr8510,【记录】给CSR8510 A10芯片的USB转蓝牙模块安装驱动
  15. 包含查询match和对时间进行范围查询range的DSL
  16. m基于LS+变步长LMS的Volterra级数数字预失真DPD系统matlab仿真
  17. 2021 非常火的 11 个微前端框架
  18. 解决vmware虚拟机和宿主机之间不能复制粘贴问题
  19. cwebp 命令大全
  20. 关于为什么sklearn画出来的ROC曲线图是折线的问题

热门文章

  1. P5675-[GZOI2017]取石子游戏【博弈论,dp】
  2. codeforces438 D. The Child and Sequence
  3. 【KMP】子串拆分(ybtoj KMP-4)
  4. Spring @Required 注释
  5. Java 程序员必须掌握的 5 个注解
  6. Jsoup代码解读之六-parser(下)
  7. Java NIO系列教程(十 五)Java NIO Path
  8. [初级]Java命令学习系列(六)——jinfo
  9. 如何quot;优雅quot;地终止一个线程?
  10. mybatisplus 强制制空 空覆盖原来的字符串