建立自己的GWT Spring Maven原型

大家好,

在觀看Justin撰寫的有關Spring和GWT的非常有趣的文章時,我認為展示如何構建自己的自定義Maven原型非常有用。我們將展示的原型基于Justin的上一個項目,并包括各種技術,例如Spring , GWT , AspectJ , HornetQ和Infinispan 。

聊夠了,現在讓我們動手吧。

準備原型。

首先,您必須有一個用于構建原型的模板項目。在我們的演示文稿中,您將在此處找到Justin項目。

將目錄更改為項目的根目錄,然后運行以下命令。

mvn archetype:create-from-project

命令完成后,您將在以下位置找到一個新項目,該項目在$ {project_home} / target / generated-sources / archetype位置生成。它是一個完整的Maven原型項目,您可以根據自己的需要進行自定義。

  • 在文件夾src / main / resources / META-INF / maven中,您可以找到archetype-metadata.xml,它是原型的描述符。
  • 在文件夾src / main / resources / archetype-resources中是將要生成的模板項目。

定制原型。

Maven原型使用apache速度來生成其代碼。 您可以通過在文件頂部設置以下常量來訪問文件中的速度變量:

#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )

然后,您可以使用$ {artifactId}語法訪問Maven屬性(例如artifactId 。還可以使用以下語法__artifactId__來訪問參數值。

每個原型都具有以下基本參數:

  • groupId
  • artifactId

您還可以使用以下語法在archetype-metadata.xml中設置任意數量的變量:

default_value

請注意,每次添加變量時,都應編輯src / test / resources / projects / basic / archetype.properties并添加參數。

version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=basic
custom_variable=default_value

在我們的示例中,我們執行了以下更改:

src / main / resources / META-INF / maven / archetype-metadata.xml中

<requiredProperties><requiredProperty key="db"><defaultValue>derby</defaultValue></requiredProperty><requiredProperty key="dburl"><defaultValue>javacodegeeks</defaultValue></requiredProperty>	<requiredProperty key="dbusername"><defaultValue>***</defaultValue></requiredProperty><requiredProperty key="dbpassword"><defaultValue>***</defaultValue></requiredProperty><requiredProperty key="cache"><defaultValue>y</defaultValue></requiredProperty>
</requiredProperties>

src / test / resources / projects / basic / archetype.properties

db=derby
dburl=javacodegeeks
dbusername=test
dbpassword=test
cache=n

src / main / resources / archetype-resources / pom.xml中

#if( $db == "derby" )<dependency><groupId>org.apache.derby</groupId><artifactId>derby</artifactId><version>10.6.1.0</version></dependency>#elseif( $db == "mysql" )<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.13</version></dependency>#else	<dependency><groupId>org.apache.derby</groupId><artifactId>derby</artifactId><version>10.6.1.0</version></dependency>

<plugin><artifactId>maven-resources-plugin</artifactId><version>2.4.3</version><executions><execution><id>copy-resources</id><!-- here the phase you need --><phase>validate</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${basedir}/src/main/webapp/${package}.Application</outputDirectory><resources><resource><directory>${basedir}/src/main/resources/${artifactId}</directory><filtering>true</filtering></resource></resources></configuration></execution></executions></plugin>

src / main / resources / archetype-resources / src / main / webapp / WEB-INF / applicationContext.xml中

#if($db == "mysql")	<bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"init-method="init" destroy-method="close"><property name="uniqueResourceName" value="javacodegeeks" /><property name="xaDataSourceClassName"value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" /><property name="xaProperties"><props><prop key="URL">${dburl}</prop><prop key="user">${dbusername}</prop><prop key="password">${dbpassword}</prop></props></property><property name="maxPoolSize" value="50" /><property name="minPoolSize" value="20" /></bean>#else<bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"init-method="init" destroy-method="close"><property name="uniqueResourceName" value="javacodegeeks" /><property name="xaDataSourceClassName" value="org.apache.derby.jdbc.EmbeddedXADataSource" /><property name="xaProperties"><props><prop key="databaseName">${dburl}</prop><prop key="createDatabase">create</prop></props></property><property name="maxPoolSize" value="50" /><property name="minPoolSize" value="20" /></bean> #end

src / main / resources / archetype-resources / src / main / resources / META-INF / persistence.xml中

#if($cache == "y")<property name="hibernate.cache.use_second_level_cache" value="true"/><property name="hibernate.cache.use_query_cache" value="true"/><property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.InfinispanRegionFactory"/><!-- <property name="hibernate.cache.infinispan.entity.eviction.strategy" value= "LRU"/><property name="hibernate.cache.infinispan.entity.eviction.wake_up_interval" value= "2000"/><property name="hibernate.cache.infinispan.entity.eviction.max_entries" value= "5000"/><property name="hibernate.cache.infinispan.entity.expiration.lifespan" value= "60000"/><property name="hibernate.cache.infinispan.entity.expiration.max_idle" value= "30000"/>-->#else<property name="hibernate.cache.use_second_level_cache" value="false"/>^M<property name="hibernate.cache.use_query_cache" value="false"/>^M#end

com / javacodegeeks / gwtspring / public文件夾重命名為__artifactId__。

安裝和運行原型

要安裝原型,請轉到原型的根文件夾,然后鍵入

mvn install

這將創建?/ .m2 / archetype-catalog.xml文件,如果您是Eclipse的m2eclipse用戶,則可以將其導入到eclipse。

要運行原型,請運行以下命令。

mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=com.javacodegeeks -DarchetypeArtifactId=gwtspring-archetype

或在eclispe中創建一個新的maven項目,然后從您從?/ .m2 / archetype-catalog.xml導入的本地目錄中選擇原型。

***請注意,原型可能是快照,您應選中“包括快照原型”

原型的源代碼在此處 。

希望您喜歡這篇文章,

最好的祝福,

翻譯自: https://www.javacodegeeks.com/2010/07/building-your-own-gwt-spring-manen.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374753.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C# 連接Oracle數據庫異常總結

這2天因為工作需要連接Oracle數據庫&#xff0c;中間發生了很多問題 一、使用OleDbConnection連接數據庫 ------------------ ProviderOraOLEDB.Oracle.1;User IDsajet;Passwordtech;Data Source(DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 192.168.66.225)(…

力扣顏色分類

給定一個包含紅色、白色和藍色&#xff0c;一共 n 個元素的數組&#xff0c;原地對它們進行排序&#xff0c;使得相同顏色的元素相鄰&#xff0c;并按照紅色、白色、藍色順序排列。 此題中&#xff0c;我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 思路:將紅色和藍色…

Cassandra,MongoDB,CouchDB,Redis,Riak,HBase比較

克里斯托夫科瓦奇&#xff08;KristfKovcs&#xff09;對六個最受歡迎的“ NoSQL ”數據庫實現進行了非常有趣的簡短比較 。 除了Kristf的工作之外&#xff0c;我還想提供一些鏈接&#xff0c;我相信這些鏈接將對有興趣關注“ NoSQL ”社區的所有人員提供幫助&#xff1a; No…

程序員需要謹記的九大安全編碼規則

歷史已經證明&#xff0c;軟件設計的缺陷一直是導致其漏洞被利用的最主要的罪魁禍首。安全專家發現&#xff0c;多數漏洞源自常見軟件中相對有限的一些漏洞。軟件開發者和設計者應當嚴格檢查程序中的各種錯誤&#xff0c;盡量在軟件部署之前就減少或清除其中的漏洞。 下面列舉的…

HDU 2897

Problem Description當日遇到月&#xff0c;于是有了明。當我遇到了你&#xff0c;便成了侶。那天&#xff0c;日月相會&#xff0c;我見到了你。而且&#xff0c;大地失去了光輝&#xff0c;你我是否成侶&#xff1f;這注定是個凄美的故事。&#xff08;以上是廢話&#xff09…

力扣合并兩個有序數組

題目&#xff1a;給你兩個按 非遞減順序 排列的整數數組 nums1 和 nums2&#xff0c;另有兩個整數 m 和 n &#xff0c;分別表示 nums1 和 nums2 中的元素數目。 請你 合并 nums2 到 nums1 中&#xff0c;使合并后的數組同樣按 非遞減順序 排列。 注意&#xff1a;最終&#…

Google Guava庫必需品

我希望代碼簡單&#xff0c;短而又易于閱讀。 不必要的復雜性分散了人們對真實情況的理解&#xff0c;使他們難以理解&#xff0c;并且可能成為生產力的真正殺手。 您知道&#xff0c;纏結的for循環和索引可以跟蹤是否/其他情況和切換用例&#xff0c;空/驗證檢查&#xff0c;轉…

單調棧3_水到極致的題 HDOJ4252

A Famous City 題目大意 給出正視圖 每一列為樓的高度 最少有幾座樓 坑點 樓高度可以為0 代表沒有樓 貢獻了兩發RE 原因 if(!s.empty()&&tem){s.push(tem); continue;}并不能篩去 空棧且 tem為0的情況 改為 if(!s.empty()){if(tem) s.push(tem); continue;} 后AC 題目…

eclipse配置遠程調試

一、配置 1、cd apache-tomcat/bin 2、vi startup.sh文件 3、在文件開頭處&#xff0c;添加下方代碼(address代表的是調試端口) declare -x CATALINA_OPTS"-Xdebug -Xnoagent -Djava.compilerNONE -Xrunjdwp:servery,transportdt_socket,suspendn,address…

力扣兩數之和 II - 輸入有序數組

題目:給定一個已按照 非遞減順序排列 的整數數組 numbers &#xff0c;請你從數組中找出兩個數滿足相加之和等于目標數 target 。 我的代碼&#xff1a; 對撞指針 class Solution {public int[] twoSum(int[] numbers, int target) {int low 0;//指向頭int high numbers.le…

SpringMVC 3 Tiles 2.2.2集成教程

Apache Tiles是基于Java的Web應用程序的流行且最常用的模板框架。 由于Struts 1.x使用Tiles作為其默認模板框架&#xff0c;因此Tiles變得更加流行。 SpringMVC是一個MVC框架&#xff0c;例如Struts &#xff0c;也支持將Tiles集成為其模板框架。 讓我們看看如何集成SpringMVC和…

[團隊項目3.0]Scrum團隊成立

Scrum團隊成立 5.Scrum團隊成立 5.1 團隊名稱&#xff0c;團隊目標、團隊口號、團隊照&#xff1b; 5.2 角色分配 產品負責人: 決定開發內容和優先級排序&#xff0c;最大化產品以及開發團隊工作的價值。 Scrum Master&#xff1a; 負責確保團隊遵循 Scrum 的理論、實踐和規則。…

Base64編碼的java實現

Java本身是提供了Base64編碼的工具包的&#xff0c;做項目的時候自己實現了個&#xff0c;在這里記錄一下&#xff1a; 1 /** Base64編碼數組 */2 private static final String base64EncodeChars "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456…

Character.isLetterOrDigit(ch)判斷ch是否為字母或數字

Character.isLetter(ch) 判斷ch是否為字母 Character.isDigit(ch) 判斷ch是否為數字 Character.isLetterOrDigit(ch) 判斷ch是否為字母或數字 /* 例子*/char ch q;System.out.println(Character.isLetter(ch));System.out.println(Character.isDigit(ch));System.out.print…

高級SmartGWT教程,第1部分

賈斯汀&#xff08;Justin&#xff09;&#xff0c;帕特&#xff08;Pat&#xff09;和我已經開始著手一個需要用戶界面進行管理和管理的副項目。 在與SmartGWT和GWT共同工作了一段時間之后&#xff0c;我們決定使用SmartGWT創建接口。 我們非常喜歡視覺組件&#xff08;請查看…

git 技巧

將某個文件回退到某個版本 git co d359624286d9c1f022b8b3b6f2d3fe3b6524188b build.sh 查看某個文件在某個版本時的內容 git show d359624286d9c1f022b8b3b6f2d3fe3b6524188b:build.sh 如果想把這個文件重命名保存 git show d359624286d9c1f022b8b3b6f2d3fe3b6524188b:build.s…

機會

民生電商的機會.地點在成都. 聯系 &#xff1a;iskall0 at 163.com 待遇 &#xff1a;和BAT差不多. H5方向&#xff1a; 前端功底扎實.對H5有較深的理解和造詣.大數據方向1&#xff1a; SSH玩的熟.linux玩的熟.熟悉云計算架構和SOA.MySQL玩的熟,PostgreSQL加分 : ]熟Hadoop、St…

力扣驗證回文串

給定一個字符串&#xff0c;驗證它是否是回文串&#xff0c;只考慮字母和數字字符&#xff0c;可以忽略字母的大小寫 代碼思路&#xff1a;將s中的每個字符用for循環取出&#xff0c;判斷一下&#xff0c;如果是字母或者數字&#xff0c;插入到StringBuffer類型sgood中&#xf…

Spring MVC3 Hibernate CRUD示例應用程序

學習從HelloWorld應用程序開始的任何Web框架都是一個好主意。 一旦我們熟悉了框架配置&#xff0c;最好做一個CRUD&#xff08;創建&#xff0c;讀取&#xff0c;更新&#xff0c;刪除&#xff09;應用程序&#xff0c;該應用程序涵蓋Web框架的各個方面&#xff0c;例如驗證&am…

Linux Mint---ATI顯卡驅動安裝篇

顯卡驅動可謂是至關重要&#xff0c;當時折騰debian驅動的時候可是弄了好幾天才搞定的&#xff0c;現在卻非常容易就是裝上&#xff0c; 詳見這篇博客&#xff1a;http://www.yyearth.com/article/14-03/amd13.html 在此表示感謝&#xff01; 我的話&#xff0c;全在圖形界面下…