MAVEN 情境 7 : 如同MAVEN 情境 6
如同MAVEN 情境 6 :
不同project( Maven Project) 的 Server Code( Java code), 被當成 dependency
(參考 maven-4 : http://mysdfly.blogspot.tw/2017/10/maven-4.html)
若要在 不同的project內被更新,
解法: use command : mvn install。
如同MAVEN 情境 6 :
不同project
(參考 maven-4
若要在 不同的project內被更新,
解法
MAVEN 情境 6 : 更新不同project的 jsp
在 IDE 情境 1 說過 :
今天跟我的 Leader 說了,可是他沒有問我怎麼做。
因為今天遇到一個問題:如何更新不同project(Maven Project)的 jsp ?
解法:將不同project(Maven Project)的 jsp,copy 至 tmp 的 其他不同project(Maven Project)的 war location 內。
在 IDE 情境 1 說過 :
在 IDE 內, 有些專案的 Project, 變更 Server Code 後, 有的要重啟 Server, 功能才會更新, 或是要執行Maven Command: mvn install ormvn clean, 功能才會更新。 我的 Leader 就是這樣跟我說。
但是, 我設定了一個簡單的設定值之後, 不必重啟 Server, 或是執行Maven Command: mvn install ormvn clean, 功能就能自動更新。
今天跟我的 Leader 說了,可是他沒有問我怎麼做。
因為今天遇到一個問題:如何更新不同project(Maven Project)的 jsp ?
解法:將不同project(Maven Project)的 jsp,copy 至 tmp 的 其他不同project(Maven Project)的 war location 內。
IDE 情境 1 : 在 IDE 內,有些專案的 Project ,變更 Server Code 後,有的要重啟 Server,功能才會更新
在 IDE 內, 有些專案的 Project , 變更 Server Code 後, 有的要重啟 Server, 功能才會更新,
或是要執行Maven Command : mvn install or mvn clean, 功能才會更新。 我的 Leader 就是這樣跟我說。
但是, 我設定了一個簡單的設定值之後, 不必重啟 Server, 或是執行Maven Command : mvn install or mvn clean, 功能就能自動更新。
在 IDE 內
或是要執行Maven Command
但是
MAVEN 情境 5 : Execute [IDE] /plugin Maven Debug Run
若執行完 : Update [IDE] {Company} Maven Project
可以執行: Execute [IDE] /plugin Maven Debug Run
若執行完
可以執行
MAVEN 情境 4-1 : Update [IDE] {Company} Maven Project
若執行完 : Maven's Building [module] [version] -SNAPSHOT
需要: Update [IDE] {Company} Maven Project
若執行完
需要
MAVEN 情境 4 : Building [module] [version] -SNAPSHOT
有些專案建置( OOD) 時, 不是在 IDE 內的 server (Server Testing Runtiome) 執行,
所以, 程式( Java code) 修改後, 要執行 : Maven's Building [module] [version] -SNAPSHOT
{Company} (working spaces: work space 1 -- Windows)\modules\{Company}(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)>mvn install -DskipTests -o
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building {Company} (Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org. icepdf . os : icepdf -extra: jar: 6.1.3 is missing, no dependency information available
[WARNING] The POM for org. icepdf . os : icepdf -pro: jar: 6.1.3 is missing, no dependency information available
[WARNING] The POM for org. icepdf . os : icepdf -pro-intl : jar: 6.1.3 is missing, no dependency information available
[WARNING] The POM for org. icepdf . os : jai_core: jar: 6.1.3 is missing, no dependency information available
[WARNING] The POM for org. icepdf . os : jai_imageio: jar: 6.1.3 is missing, no dependency information available
[INFO]
[INFO] --- maven-dependency-plugin: 2.8: unpack (log4j) @ {Company} (Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) ---
......
[INFO] --- maven-jar-plugin: 2.4: jar (default-jar) @ pa-(Modules/sub module/inner modules: inner module 1) ---
[INFO] Building jar: {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT. jar
[INFO]
[INFO] --- maven-source-plugin: 2.2.1: jar-no-fork (attach-sources) @ pa-(Modules/sub module/inner modules: inner module 1) ---
[INFO] Building jar: {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-sources. jar
[INFO]
[INFO] --- maven-source-plugin: 2.2.1: test-jar-no-fork (attach-sources) @ pa-(Modules/sub module/inner modules: inner module 1) ---
[INFO]
[INFO] --- maven-jar-plugin: 2.4: test-jar (default) @ pa-(Modules/sub module/inner modules: inner module 1) ---
[INFO] Building jar: {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-tests. jar
[INFO]
[INFO] --- maven-assembly-plugin: 2.4: single (assembly-web) @ pa-(Modules/sub module/inner modules: inner module 1) ---
[INFO] Building war: {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-web. war
[INFO]
[INFO] --- maven-install-plugin: 2.4: install (default-install) @ pa-(Modules/sub module/inner modules: inner module 1) ---
[INFO] Installing {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT. jar to {Company} (repositories: repository 1)\com\ebao\ls\tgl\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1)\1.0.0-SNAPSHOT\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT. jar( 註 1)
[INFO] Installing {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\pom.xml to {Company} (repositories: repository 1)\com\ebao\ls\tgl\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1)\1.0.0-SNAPSHOT\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT. pom
[INFO] Installing {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-sources. jar to {Company} (repositories: repository 1)\com\ebao\ls\tgl\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1)\1.0.0-SNAPSHOT\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-sources. jar
[INFO] Installing {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-test-sources. jar to {Company} (repositories: repository 1)\com\ebao\ls\tgl\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1)\1.0.0-SNAPSHOT\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-test-sources. jar
[INFO] Installing {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-tests. jar to {Company} (repositories: repository 1)\com\ebao\ls\tgl\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1)\1.0.0-SNAPSHOT\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-tests. jar
[INFO] Installing {Company} (working spaces: work space 1 -- Windows)\modules\(Modules/sub modules: module 1)\(Modules/sub module/inner modules: inner module 1)\target\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-web. war to {Company} (repositories: repository 1)\com\ebao\ls\tgl\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1)\1.0.0-SNAPSHOT\(Modules/sub modules: module 1) -(Modules/sub module/inner modules: inner module 1) -1.0.0-SNAPSHOT-web. war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31.355s
[INFO] Finished at: Wed Oct 25 16:21:23 CST 2017
[INFO] Final Memory: 20M/981M
[INFO] ------------------------------------------------------------------------
註 1: *SNAPSHOT-sources. jar, 通常是供 別的 module 使用的 dependency。
註 2: *SNAPSHOT-sources. jar, jar 內的 class 沒有更新, 要先刪除, 才會re-Build:
(1). 刪除該 jar file, or
(2).use command : mvn clean
有些專案建置
所以
{Company
[INFO] Scanning for projects...
[INFO]
[INFO]
[INFO] Building {Company
[INFO]
[WARNING] The POM for org
[WARNING] The POM for org
[WARNING] The POM for org
[WARNING] The POM for org
[WARNING] The POM for org
[INFO]
[INFO] --- maven-dependency-plugin
......
[INFO] --- maven-jar-plugin
[INFO] Building jar: {Company
[INFO]
[INFO] --- maven-source-plugin
[INFO] Building jar: {Company
[INFO]
[INFO] --- maven-source-plugin
[INFO]
[INFO] --- maven-jar-plugin
[INFO] Building jar: {Company
[INFO]
[INFO] --- maven-assembly-plugin
[INFO] Building war: {Company
[INFO]
[INFO] --- maven-install-plugin
[INFO] Installing {Company
[INFO] Installing {Company
[INFO] Installing {Company
[INFO] Installing {Company
[INFO] Installing {Company
[INFO] Installing {Company
[INFO]
[INFO] BUILD SUCCESS
[INFO]
[INFO] Total time: 31.355s
[INFO] Finished at: Wed Oct 25 16:21:23 CST 2017
[INFO] Final Memory: 20M/981M
[INFO]
註 1
註 2
(1). 刪除該 jar file
(2).
UI 情境 2 : 使用jQuery動態新增HTML Table內一個新列的起手式 :
$newRow = $( "<tr >"
+ "<td style='text-align:center'>\n"
+ " <input type='checkbox' name='data1CheckListId' value='" + data. listId + "'>"
+ " <input type='hidden' name='data1ListId' value='" +data. listId + "'>"
+"</td >"
+ "<td ></td >"
+ "<td ></td >"
+ "<td ></td >"
+ "</tr >");
(1). 將動態的 HTML Code( $newRow), 加入靜態的 HTML Code( $table1):
var $table1 = $( '#table1');
$table1. append( $newRow);
(2). 設值:
/** 找到$uiRow -- tr 內的第三個td -- td:eq(3), 並把值 -- element3's data設定入*/
$newRow. find( "td : eq ( 3)") .html( element3's data);
element3's data 則為透過 Ajax(或其他方式) 傳回的值, 型態為 Map*,並透過each將值取出並組成另外element的code**(註2)。
註 2:範例
var statusMap = <%java's map1%>
/** 產生下拉式選單 */
function genSelect1( selectedStatus ) {
if ( statusMap) {
$select1 = '<select name="statusId " id="statusId ">';
/**jQuery's each*/
$. each( statusMap, function( key, item) {
$select1 = $select1 + '<option value="'+key+'" title="'+item.desc+'" ';
$select1 = $select1 + (selectedStatus == item.desc ? 'selected >' : '>' ) ;
$select1 = $select1 + item.desc + '</option>';
});
$select1 = $select1 + '</select>';
} else {
$select1 =selectedStatus ;
}
return $select1;
}
$newRow = $
+ "<td style='text-align:center'>\n"
+ " <input type='checkbox' name='data1CheckListId' value='" + data
+ " <input type='hidden' name='data1ListId' value='" +
+"</
+ "<
+ "<
+ "<
+ "</
(1). 將動態的 HTML Code
$table1
(2). 設值:
/** 找到$uiRow -- tr 內的第三個td -- td:eq(3), 並把值 -- element3's data設定入*/
$newRow
element3's data 則為透過 Ajax(或其他方式) 傳回的值, 型態為 Map*,並透過each將值取出並組成另外element的code**(註2)
$select1 = '<select name="
/**
$
$select1 = $select1 + '<option value="'+key+'" title="'+item.desc+'" ';
$select1 = $select1 + (
$select1 = $select1 + item.desc + '</option>';
});
$select1 = $select1 + '</select>';
$select1 =
}
}
工作情境 1 : 最近兩個專案的工作,用 EditPlus 的 專案管理的功能,成效不錯
最近兩個專案的工作,用 EditPlus 的 專案管理的功能,成效不錯:
1. 專案 N - 1 :客戶的總經理說我們的 Team 驗收度是最高的。
2. 專案 N :協助我迅速進入專案的狀況。
EditPlus 的 專案管理,可以用 XML 管理:
相當方便。
我有分享給專案 N - 1 中資深的Leader,和我帶的新人。
最近兩個專案的工作,用 EditPlus 的 專案管理的功能,成效不錯:
1. 專案 N - 1 :客戶的總經理說我們的 Team 驗收度是最高的。
2. 專案 N :協助我迅速進入專案的狀況。
EditPlus 的 專案管理,可以用 XML 管理:
- 備份
- 匯入
- 移動 item 的前後順序
- 建立的資料夾 item 與 xml 無關,名稱可隨意修改
- 不需要連結資料庫
- 階層不限
- 顯示中文
相當方便。
我有分享給專案 N - 1 中資深的Leader,和我帶的新人。
UI 情境 1 : 不同的element的onFucus, onBlur互相交互執行,造成死結,瀏覽器無法關閉
不同的element的onFucus, onBlur互相交互執行,造成死結,瀏覽器無法關閉,這是一個很詭譎的情況,雖然少見,但,這幾天,的確又遇到了。這是十幾年來工作歷程中的第三次左右,可見很稀少。
佈局 :
1. element 1 綁訂了 onFucus, onBlur 的事件,使用 jQuery。
2. element 2 也綁訂了onFucus, onBlur 的事件,也使用 jQuery。但多了 setTimeout 的設定:將 游標移至 element 2 內的最前面的位置。就是因為:setTimeout 的時間設定、功能沒有設定好,開始 element 2 的 onFucus, onBlur,element 1 的 onFucus, onBlur 也被使用者作用中,因此:兩個 element的onFucus, onBlur互相交互執行,造成死結,瀏覽器無法關閉。
不同的element的onFucus, onBlur互相交互執行,造成死結,瀏覽器無法關閉,這是一個很詭譎的情況,雖然少見,但,這幾天,的確又遇到了。這是十幾年來工作歷程中的第三次左右,可見很稀少。
佈局 :
1. element 1 綁訂了 onFucus, onBlur 的事件,使用 jQuery。
2. element 2 也綁訂了
Maven 情境 3 -- IDE 內的 Maven Debug Run 執行時, 無法進入Source Code
當我們在 IDE(註1) 內,以Maven Project的方式,匯入專案時,有些人的Maven 架構,無法在Server(專業的名稱 : Server Runtime Environment)內執行:EAR,或 WAR,或無法直接以Maven Command的方式執行:mvn jetty:run(or : jetty:start) (-- 前面的文章剛剛有開始提到),必須以 IDE 內的 Maven Debug Run 執行。
今天,我們有遇到:Maven 情境 3 -- IDE 內的 MavenDebug Run 執行時, 無法進入Source Code 以 Debug。我的Leader也不知道為什麼。後來我很快解決了(註2) 。
我們一般啟動專案的方式有以下的方式:
: 加入Source的Location。
當我們在 IDE(註1) 內,以Maven Project的方式,匯入專案時,有些人的Maven 架構,無法在Server(專業的名稱 : Server Runtime Environment)內執行:EAR,或 WAR,或無法直接以Maven Command的方式執行:mvn jetty:run(or : jetty:start) (-- 前面的文章剛剛有開始提到),必須以 IDE 內的 Maven Debug Run 執行。
今天,我們有遇到:Maven 情境 3 -- IDE 內的 Maven
我們一般啟動專案的方式有以下的方式:
- Server
- Maven Command
: jettymvn run: or( jetty: start): - IDE 內的 Maven
Debug Run
註1 : 我使用的 IDE 是 Spring的最新版的STS( Spring Tool Suite™)
註2
Maven 情境 2 -- svn上版的程式有問題, 誤以為是maven的問題
這是最近遇到的問題,我的Leader,看我的環境在啟動的過程,一直誤以為是Maven的問題,結果,反覆一直處理Maven,不停的 re-Build, re-Force Update (-U)(註1)。結果,我回歸最基本的解決處理Server的問題的步驟:想到 Hibernat Session起不來,是Server Runtime的問題,通常是程式的問題,果不其然,經過確認後,問題解決了。
註1 : 不過, 我學到很好的Maven Command -- mvn -rf
這是最近遇到的問題,我的Leader,看我的環境在啟動的過程,一直誤以為是Maven的問題,結果,反覆一直處理Maven,不停的 re-Build, re-Force Update (-U)(註1)。結果,我回歸最基本的解決處理Server的問題的步驟:想到 Hibernat Session起不來,是Server Runtime的問題,通常是程式的問題,果不其然,經過確認後,問題解決了。
註1
Maven 情境 1 :
註1: Repository -- Maven存放套件資源的位置。
Maven 情境 1 , 會遇到的問題 : maven 的 jetty plugin無法download
- 先安裝了A版本的Maven。
後安裝了B版本的Maven,並設定了\apache-maven-B\confsettings.xml,且指定了localRepository(註1)、 a nother profile 。(因為有些開發的環境,無法--沒有權限,連結客戶的Central Repository(註1) 。因為客戶的 Resouce 不對外, 他們另外建立自己的 Repository Server, 就如之前的 Resource Server: CSV Server、 Team Star Server......。 )

