java ee maven_针对新手的Java EE7和Maven项目–第8部分
java ee maven
- 第一部分 ,
- 第2部分 ,
- 第3部分 ,
- 第4部分 ,
- 第5部分 ,
- 第6部分 ,
- 第7部分
- 第8部分
自上一篇文章以來,這一系列教程已經(jīng)有很長時間了。 是時候恢復并在我們的簡單項目中添加新功能了。 正如我在以前的文章中提到的那樣,該系列文章主要針對Maven和JavaEE7新手,我歡迎對以下內(nèi)容有任何疑問或意見(和修正)。 我保證我會努力跟上更新。
這個帖子的Git標簽?
該帖子的標簽是post8 ,可以在我的bitbucket存儲庫中找到。
與以前的帖子相比有什么變化?
- 讀者的代碼注釋和修復已集成在一起。非常感謝您的參考。
- 我已經(jīng)將Wildfly應(yīng)用服務(wù)器版本從8.1更新到8.2,因此所有示例和代碼都在新服務(wù)器下運行。
- 我還將Arquillian BOM的版本更新為最新的版本1.1.7.Final
- 我還在樣例父項目下添加了一個屬性,該屬性指示各種maven模塊將自動下載并使用Wildfly服務(wù)器的路徑,這樣您就不必自己下載它。 一旦您嘗試執(zhí)行先前文章中的單元測試之一,服務(wù)器將自動下載并提取到預定義的路徑(sample-services模塊) <!--path to download wildfly--><wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>
在我們的耳朵上添加啟用了JSF的war Maven模塊
最終,我們的項目結(jié)構(gòu)已經(jīng)出現(xiàn)了戰(zhàn)爭(請參見sample-web)
Maven模塊。 因此,沒有引入任何額外的模塊,而是對父級和模塊本身的現(xiàn)有pom.xml文件進行了更改。
步驟1在web.xml上更改
我們的應(yīng)用程序服務(wù)器已經(jīng)捆綁了必需的庫和設(shè)置,以支持使用JSF 2.2規(guī)范的應(yīng)用程序。 Wildfly捆綁了Mojarra 2.2.8 。 我們要做的只是更新一些配置描述符(最終只有一個)。 最重要的是web.xml,現(xiàn)在看起來像這樣。
<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步:打包戰(zhàn)爭和瘦身的戰(zhàn)爭問題
我們的戰(zhàn)爭模塊遵循一種稱為“瘦身戰(zhàn)爭”的包裝方案。 請從Apache maven war插件閱讀以下頁面 。 長話短說,為了減小部署能力(耳朵)的整體大小,我們將所有必需的庫打包在耳朵級別的預定義文件夾下,通常稱為\ lib,并且不包括在下面的庫戰(zhàn)爭的WEB-INF \ lib文件夾。 您唯一需要做的就是將戰(zhàn)爭的相關(guān)性添加到耳邊。 盡管實際上整個“ hack”感覺都不是專家,但如果遵循建議的配置,它就可以工作,但是在某些情況下,瘦小的戰(zhàn)爭包裝將無法工作。 其中之一通常用于基于JSF的JavaEE Web應(yīng)用程序,其中應(yīng)將JSF小部件引擎的實現(xiàn)打包在戰(zhàn)爭的WEB-INF \ lib中。
對于我們的示例項目,我使用了出色且免費的Primefaces庫 ,我強烈建議您將其用于下一個基于JSF的項目。 因此,我需要為primefaces jar定義對war模塊的依賴關(guān)系,但要通過僅針對此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的標簽。 如果您認為需要閱讀有關(guān)JSF 2.X的更多信息,請訪問以下鏈接
- JSF神靈之一(BalusC)的JSF 2.2教程
- Primefaces文檔
- Primefaces展示柜
- JavaEE教程– Oracle的JSF 2.2
- JSF 2.2示例
步驟4打包并部署到正在運行的服務(wù)器。
啟動您的wildfly(預計您的項目庫目錄和子文件夾服務(wù)器下應(yīng)有一個)
<wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>然后在樣本父項目類型下。
mvn clean install -Ph2您應(yīng)該在http:// localhost:8080 / sample-web /上具有啟用了JSF 2.2的演示應(yīng)用程序,并看到類似以下內(nèi)容的內(nèi)容。
就是這樣,這將為您提供一個簡單的起點,以便擴展除演示之外的其他功能!
與往常一樣,您將在標記post8下找到完整的示例。
翻譯自: https://www.javacodegeeks.com/2015/03/java-ee7-and-maven-project-for-newbies-part-8.html
java ee maven
總結(jié)
以上是生活随笔為你收集整理的java ee maven_针对新手的Java EE7和Maven项目–第8部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果电脑网络重装系统(苹果电脑网络安装系
- 下一篇: java 性能 优化_Java十大简单性