2014年9月26日 星期五

mac connect aws ec2

1.  Amaon EC2  建立機器實體後,會產生一個  pem key,這個pem要保存好,不見的話救不回來。


2.  打開mac 終端機,進入pem所在資料夾


3.  pme 需要修改權限
  • chmod 400 xxx.pem
忘了修改權限會發生如下警訊:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'xxx.pem' are too open.

4.  連線
  • ssh -i   [your pem name].pem ubuntu@[your public DNS]



關於SSH

2014年9月13日 星期六

Intellij scala

1. down load intellij 

2. install scala plugin

  • open intellj
  • select   ->   Configure  ->  Plugins
  • search scala
  • install plugin


3. install sbt plugin

  • Configure -> Plugins
  • search sbt
  • install plugin
5. create scala project
  • Create New Project
  • Scala -> SBT
  • Enter Project Name

Note :  if  your sbt  console  has  error  message
           
      Error  :  Cannot determine Java VM executable in selected JDK

      Resolve :
  • Configure -> Project defaults -> Project structure and add the jdk.
  • Configure -> Preferences -> IDE Settings -> Scala  andd the jdk.
  • File -> Project structure  add the jdk.

             JDK  Patch :
              /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home




reference document : 




2014年8月25日 星期一

快速資料查詢

-- Angular
https://docs.angularjs.org/tutorial/step_02

-- Coffee
http://coffee-script.org/
http://zhang.zipeng.info/library/coffeescript/05_compiling.html


-- Less
http://www.lesscss.net/features/#extend-feature
http://lesscss.org/

--Gulp
http://987.tw/2014/07/09/gulpru-men-zhi-nan/
https://github.com/basecss/gulp-tutorial/wiki/gulp-api

-- Bower
http://bower.io/docs/creating-packages/
http://bower.jsbin.cn/
http://segmentfault.com/a/1190000000349555?page=1#c-1190000000349555-1050000000595146

--REQ
http://requirejs.org/
http://www.cnblogs.com/snandy/archive/2012/05/22/2513652.html

2014年8月15日 星期五

Gulp.js plugin LiveReload

套件名稱:glup  liveReload

功用: 當在開發過程中,程式、文件有異動時,能夠讓browser自動重整。


1. 需先安裝好gulp

2. 安裝 livereload

  • sudo npm install gulp gulp-livereload --save-dev


3. 安裝瀏覽器套件

  • chrome  https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei 
  • firefox    https://addons.mozilla.org/zh-tw/firefox/addon/livereload/
note : 若是不想使用瀏覽器套件,可以參考 How do I add the SCRIPT tag manually?

4. 編寫 gulpfile.js

var gulp = require('gulp'),
      livereload = require('gulp-livereload');


 // 'watch' 是 task 的名稱,可以任意定義名稱 
gulp.task('watch', function () {
   livereload.listen();

   // dev/**/*.*的意思是 dev下的,任何資料夾的任何文件。 gulp.watch('dev/**/*.*').on('change', livereload.changed);    
});

5.  執行命令

  • gulp watch
6. 開啟 browser外掛套件
  • 點擊    
7. 開啟相關頁面,當修改app下的任何文件,瀏覽器就會自動重整了。


參考資料:

npm:

Gulp.js 使用流程

Gulp 使用步驟:

Note: Gulp需要先安裝 nodejs。


1. 安裝gulp至全域環境

  • $ sudo npm install gulp -g


2. 將gulp安裝於專案目錄下 (會安裝gulp的node model  於 local)

  • $ npm install gulp --save-dev

    note : --save-dev 會將glup寫入package.js
           若是沒有package.js 可利用 npm init 產生。


3. 安裝 gulp 外掛套件

  • $ npm install  --save-dev
    ex : $ npm install gulp-coffee 
    --save-dev
    //安裝coffeeScript的編譯模組


4. 建立並且編寫 gulpfile.js 檔

    Note :  gulpfile.js 是 gulp 用來執行些什麼工作任務的依據設定。


5. 運行 gulp

  • 於gulpfile.js所在執行 : gulp



參考資料:

2014年8月14日 星期四

ubuntu install less

Install less:

$ npm install -g less

compiler:
$ lessc styles.less


windows安裝法:
http://contest-start.blogspot.tw/2014/06/nodejs-install-less-middleware.html


install bower

Bower目的是用來管理前端環境library的依賴關係。

Bower 需要 nodejs 與 git。

需先安裝:


Install bower
  • $  sudo  npm install bower -g

Install packages
  • $ bower install jquery

如需指定版本
  • bower install #
    ex: bower install jquery#1.11.1
uninstall packages
  • bower uninstall jquery


如此就會將jquery下載到你下命令的路徑資料夾中的 ./bower_components/jquery


Note:在window環境中,需要將git安裝路徑加到環境變數  PATH中,
            如果沒有加入在安裝套件時會出現
      bower ENOGIT git is not installed or not in the PATH。


參考文件:



ubunto install nodejs


  1. sudo add-apt-repository ppa:chris-lea/node.js
  2. sudo apt-get update
  3. sudo apt-get install nodejs
     Note: 1.測試 ,直接在linux終端機中輸入,node -h。
                  2. node -v,可查詢版本。

參考資料:
  • http://www.gtwang.org/2013/12/install-node-js-in-windows-mac-os-x-linux.html
  • https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-an-ubuntu-14-04-server

ubuntu install git


Install Git
  • $ sudo apt-get install git

   Note:如果是windows則是使用msysGit


Install Git GUI

  • sudo apt-get install git-cola
          在新目錄中  git init,能夠建立新的git repository


   Note:  linux上有需多種GUI可選擇。
       

Reference

2014年8月1日 星期五

NodeJS Send Request

NodeJS 發送HTTP請求套件


1. 在package.json 加上request項目

package.json


{
  "name": "englistNodeServer",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.2.6",
    "jade": "*",
    "less-middleware": "*",
    "socket.io" : "1.0.6" ,
    "request" : "2.39.0"
  }
}

2. 打開node.js命令列,進入package.json 同層資料夾下
  • npm install

3. 編輯檔案  app.js

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Print the google web page.
  }
})


4. 啟動app.js
  • node app.js

即可看到回覆內容



2014年7月30日 星期三

nginx + tomcat + memcached (windows) 反向代理、負載平衡、sessione共享

環境:
OS : winsows7
JDK : 7


準備軟體

Server
JAR
NOTE: 注意用太新版本的jar反而會錯,tomcat會啟動不了。

資源列表:

memcached在client可用:

1.解壓 nginx、 tomcat、memcached

2. 將下載的 jar 放置 兩個  tomcat 的  /lib 底下

3.安裝 memcached
  • 管理員開啟命令列,執行 memcached.exe –d install 。
查詢啟動:
  • tasklist /fi "imagename eq memcached.exe"


  • 可以進到管理中將其改為手動啟動。

預設的port是 11211

指令:
     -p 監聽的Port   
     -l 連接的IP地址, 預設是本機  (localhost)
     -d start 啟動memcached服務
    -d restart 重起memcached服務
    -d stop|shutdown 關閉正在運行的memcached服務
    -d install 安裝memcached服務
    -d uninstall 卸載memcached服務
    -u 以的身份運行(僅在以root運行的時候有效)
    -m 最大記憶體使用,單位MB。默認64MB
    -M 記憶體耗盡時返回錯誤,而不是刪除項目
    -c 最大同時連接數,默認是1024
    -f 塊大小增長因子,默認是1.25
    -n 最小分配空間,key+value+flags 預設是48
    -h 顯示幫助

Note:windows7要使用管理員開啟命令模式

2014年7月20日 星期日

Java MongoDB find _id


搜尋條件必須用 ObjectID(  ),直接用String 會找不著。

BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId(roleID));



2014年7月17日 星期四

Java Mongo Drivers Normal Authentication 一般驗證

OS : win7
mongoDB  :   2.6
MongoDB Drivers :  2.12.2
Language:Java


package global.db;


import java.net.UnknownHostException;

import java.util.Arrays;

import javassist.bytecode.stackmap.TypeData.ClassName;


import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.Scope;

import com.mongodb.DB;

import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;

/**

 * @author hua
 * 處理 mongoDB 基礎連線建立 
 */
@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {

private static Logger logger = Logger.getLogger(ClassName.class);

@Value("${mongo.host}")
private String host;

@Value("${mongo.port}")
private int port;

@Value("${mongo.dbName}")
private String dbName;

@Value("${mongo.user}")
private String user;

@Value("${mongo.pwd}")
private String pwd;

private MongoClient mongoClient;

public MongoConnection() throws UnknownHostException {
super();
}

/**

* 建立連線
*/
private void buildConnection()throws UnknownHostException{
try {
MongoCredential credential = MongoCredential.createMongoCRCredential(this.user, this.dbName, this.pwd.toCharArray());
MongoClientOptions options = getOption();
ServerAddress address = new ServerAddress(this.host, this.port);
mongoClient = new MongoClient(address, Arrays.asList(credential), options);
logger.info("--------------------MongoDB 驗證成功");
} catch (UnknownHostException e) {
logger.error("MongoDB 建立連線失敗!");
if(mongoClient != null){
mongoClient.close();
}
throw e;
}
}
//線程等待數量  * 主機最大連線數  = pool 數量
protected MongoClientOptions getOption(){
return new MongoClientOptions.Builder()
       .threadsAllowedToBlockForConnectionMultiplier(300) //線程等待的數量
       .connectionsPerHost(10) //主機最大連線數
       .connectTimeout(5000)
       .build();
}

/** 取得DB操作物件
* @return
* @throws UnknownHostException
*/
public DB getDB() throws UnknownHostException {
synchronized (this) {
if(mongoClient == null){
buildConnection();
}
}
return mongoClient.getDB(this.dbName);
}
}



Note :
  •  mongo 現在版本,建議使用MongoClientOptions 而不要再使用MongoOptions。
參考文件:



MongoDB MongoClient 與 Mongo

OS : win7
mongoDB  :   2.6
MongoDB Drivers :  2.12.2
Language:Java


  • MongoClient 與 Mongo 是mongoDB Driver  是連線管理物件,具有連線池功用。
  • Mongo 目前 Drivers API 有提到,請不要再使用Mongo,而因改用MongoClient來建立連線。

    此段引用mongoDB官方API 文件

    Mongo(MongoURI uri)
    Deprecated.

    可以看見,文件告知改用MongoClient吧。
  • MongoClient 繼承自  Mongo。

參考:

spring bean scope annotation


@Configuration
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class MongoConnection {
    .
    .
    .
}


SCOPE
  • BeanDefinition.SCOPE_SINGLETON     or  "singleton "
  • BeanDefinition.SCOPE_PROTOTYPE    or   "prototype "
  • "request"
  • "session" 
  • "globalSession "

Reference 

2014年7月16日 星期三

bootstrap 3.2 修改 Media queries breakpoints

1. 打開  /bootstrap/less/variables.less

2. Ctrl + F  , 輸入  screen

3 . 修改

  • @screen-xs  :   320px;
  • @screen-sm :   768px;
  • @screen-md :   1024px;
  • @screen-lg    :   1200px;
4. 存檔

5.  開啟 nodejs 命令介面

6  輸入:  grunt dist         (做編譯)

bootstrap source 使用 與 編譯

bootstrap 下載 source檔,較方便修改,在更改 less檔後,可經由grunt編譯產生結果。

1.需要先安裝 nodejs


2. 下載 bootstrap source版本

  • bootstrap有提供壓縮好的版本,與原始碼版。
  • 壓縮版可以直接使用,修改是直接改動css.
  • source版,可以藉由改動less在使用grunt編譯至dist夾產生壓縮結果。
  • 直接改css對沒學過less的人比較直覺,但改動地方多容易不同步。
  • source可改less,因為有變數等功能關係,改動較少就能達到效果。

3. 安裝 grunt
  • 開啟 nodejs 命令介面。  (open  nodejs command line)
  • 輸入:  npm install -g grunt-cli   //將會安裝grunt 於全域環境
4. 安裝 bootstrap 所需模組
  • 進入boostrap根目錄下。     \bootstrap\
  • 輸入:  npm install   ,npm 將會依照  package.json設定來安裝模組套件於區域環境。

5. 編譯 less並將css與javascript壓縮
  • 在bootstrap根目錄下輸入:  grunt dist 

Note:
  • nodejs 在找尋模組會先從專案夾中的區域模組夾中找尋,找不到才會去全域模組資料夾找模組。



Spring Class中,使用 properties

1.  spring config  xml

&lt!-- 提供 properties檔之內容注入 bean 屬性 使用  @(Value ${屬性名稱}) 注入 -->
<context:property-placeholder location="classpath*:META-INF/mongodb.properties"/>


2. mongodb.properties
 
       #db name
      mongo.dbName=englishStore


3. 
@Value("${mongo.dbName}")
private String dbName;

Spring JSP 中使用 properties 檔屬性

1.  xml 需要
  • xmlns:util="http://www.springframework.org/schema/util"
  • xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/util/spring-util-3.0.xsd"


2. spring   xml

<util:properties id="commonProperties
location="/WEB-INF/nodejs.properties"/>

3. nodejs.properties

    nodejsHost=http://localhost:3000

4. jsp

<spring:eval var="host" expression="@commonProperties.nodejsHost"/>






2014年7月14日 星期一

maven學習 十二 : SpringMVC + Tiles + log4j

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>tw.ocean.englishProject</groupId>
  <artifactId>englishProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
 
    <!-- 依賴,就是程式中會用到的jar -->
  <dependencies>  
<!-- Spring Core Bean AOP Expression Context-->
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.9.RELEASE</version>
    </dependency>
   <!-- Spring MVC -->
    <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.9.RELEASE</version>
 </dependency>

 <!-- log工具  spring 需要log4j + slf4j-->
 <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
 </dependency>
 <dependency>                          
       <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>1.7.7</version>
 </dependency>
 <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.2</version>
 </dependency>
 <!-- 樣板框架 -->
 <dependency>
       <groupId>org.apache.tiles</groupId>
      <artifactId>tiles-extras</artifactId>
      <version>2.2.2</version>
    </dependency>    
    <dependency>
       <groupId>org.apache.tiles</groupId>
      <artifactId>tiles-servlet</artifactId>
      <version>2.2.2</version>
 </dependency>
 <dependency>
   <groupId>org.apache.tiles</groupId>
     <artifactId>tiles-jsp</artifactId>
     <version>2.2.2</version>
 </dependency>
 <!--  -->
 <dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
 </dependency>

</dependencies>
</project>


maven學習 十一 : Maven Srping MVC


Maven 配置:
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>tw.ocean.englishProject</groupId>
  <artifactId>englishProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
 
    <!-- 依賴,就是程式中會用到的jar -->
  <dependencies>  
<!-- Spring Core Bean AOP Expression Context-->
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.9.RELEASE</version>
    </dependency>
   <!-- Spring MVC -->
        <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.9.RELEASE</version>
</dependency>

<!-- log工具  spring 需要log4j + slf4j-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>                          
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
  </dependencies>
</project>


web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>englishProject</display-name>
<!-- Spring MVC -->
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <init-param>    
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring-context.xml</param-value>
    </init-param>  
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>  
    <url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>


spring-context.xml


xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">





spring-webmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">


<!-- 掃描pojo查看註解來執行自動注入 -->
<context:component-scan base-package="front.*" ></context:component-scan>
<!--Request 請求URL映射-->
<mvc:annotation-driven></mvc:annotation-driven>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/view/"/>
    <property name="suffix" value=".jsp"/>
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>
</beans>


ReadController  

package front.controller;

import java.util.Map;

import javassist.bytecode.stackmap.TypeData.ClassName;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ReadController  {
private static final long serialVersionUID = 1L;

private static Logger logger = Logger.getLogger(ClassName.class);
     

    public ReadController() {    
        super();
        logger.info("YYYYYYYYYYYYYYYYYYY");
    }

    @RequestMapping({"/" , "/home"})
    public String test(Map<String, Object> model){
     logger.info("HOME HOME HOME HOME HOME");
    return "home";
    }


}



2014年7月12日 星期六

maven學習 十 : log4j for spring

重點  :

  • Spring log機制需要  log4j  與  slf4j
  • 將  log4j.properties 設定檔,放於 WEB-INF 或是 classpath  MATA-INF,就能運作。
  • Spring 能由 org.springframework.web.util.Log4jConfigListener 設定時間掃描設定檔內容,
    做Run time時的設定變更。


pom.xml  

 <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>                           
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.7</version> 
</dependency>
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.1.2</version>
</dependency>



 log4j.properties 

#log4j設定檔,此檔只要放到WEB-INF或META-INF中,spring中即可運作
# Root logger option
log4j.rootLogger=INFO,BreadCrumbs
# Console輸出 與 輸出格式
log4j.appender.BreadCrumbs=org.apache.log4j.ConsoleAppender
log4j.appender.BreadCrumbs.Target=System.out
log4j.appender.BreadCrumbs.layout=org.apache.log4j.PatternLayout
log4j.appender.BreadCrumbs.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


如此在Spring就能運作。


延生功能 :

如果想要做執行期變更設定,可以再web.xml加入:

web.xml

<!-- Log4j -->
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<!-- 半小時會掃描一次 log4j.properties檔,做熱部署-->
<context-param> 
   <param-name>log4jRefreshInterval</param-name> 
   <param-value>1800000</param-value> 
</context-param> 
<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

2014年7月11日 星期五

maven學習 九 : 利用MVNRepository網站,加入mongoDB

Step 1. 連結到  MVN Repository 官網

Step 2. 搜尋欄位中填入  mongodb






Step3 .  點擊  MongoDB Java Driver 項目

MongoDB Java Driver 
The MongoDB Java driver
org.mongodb » mongo-java-driver


Step4.  點擊你想要的版本







 NOTE:



Step 5.  複製 dependency 內容至 專案的 pom.xml 















 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tw.ocean</groupId>
  <artifactId>ProjectD</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <!-- 依賴,就是程式中會用到的jar -->
  <dependencies>  
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.12.2</version>
</dependency>
  </dependencies>

</project>


Step 6 .  執行 mvn install

  • 方法一: 在命令列中  mvn  install
  • 方法二: 在eclipse 中,對專案項目,
                      滑鼠右鍵  >  Run AS  >    Maven Install
如此就會將 mongoDB Driver 下載至本機的Repository資料夾中,
並且會自動引入專案關連。



















參考資料:



關於 mongoDB 版本號 (MongoDB Version Nmber)

mongoDB 版本號
example  : 2.4.1

2.4 : 代表版本別
     
4   : 這個位數,偶數代表 「穩定版本」,奇數代表 「開發中,版本」


1   : 這個位數,表示修正版號,0為起始號。


example :


  • 2.0.0 穩定版
  • 2.0.1 修正版
  • 2.1.0 開發中版本,用於測試,不穩定。
  • 2.2.0 穩定版本,是2.1.x 系列的最後之作。

參考說明:


maven學習 八 : 使用 Eclipse Maven Plugin 建立Web Project


Step1.  

  • File > New >  Maven Project
Step2 .
  • Check:
                   1.  Create a simple project (skip archetype selection)

                       2. Next

Step3. 
  • Group Id :   tw.com.ocean      //輸入你想要的   "名稱空間"Artifact Id:  MyWebProject    //輸入你想要的   "專案名稱"Packaging:  war          


  • Finish

2014年7月10日 星期四

maven學習 七 : Eclipse install maven plugin

OS : windows7


1.  打開Eclipse Marketplace
  •  Help > Eclipse Marketplace


2.  搜尋 maven 
  • 在marketplace面板中,點擊Search頁籤,在 Find 欄位中,輸入 maven。


找到 Maven Integration for Eclipse 找到支援你自己Eclipse版本的項目,按下install。

3. 安裝完成,重新啟動Eclipse 。

4. 設定maven plugin
  • Windows > Preferences ...
  • Maven > Installations  > add   >
    a.  選擇你下載完存放maven的所在資料夾。
    b.  Global settings from installation directory 選擇你的settings.xml設定檔。
    注意,這是全部環境統一設定。

  • Maven > User Settings >
    a. User Settings (open file):
      ,這裡選擇你個人的settings.xml

    b. Local Repository (From merged user and global settings): ,
        這裡選擇你在setting.xml中所設定的Repository路徑。


            Note:
                     ●  需先安裝maven才能開始第四步,請參考安裝maven
                     ●  設定settings.xml,請參考此篇








參考資料:
Note:
  • 如果想要使用 Install New SoftWare,就到 maven plugin官網下載。

maven學習 六 : maven 執行 java專案

OS     : windows7
maven :3
language: java   



1. 先建立一個測試用 Java SE 專案

  • mvn archetype:generate
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false
    -DgroupId=tw.com.ocean
    -DartifactId=helloworld   


2. 編譯     
  • mvn compile
   NOTE:需要進入pom.xml所在路徑下達 mvn指令。

3. 執行 
  • mvn exec:java -Dexec.mainClass=tw.com.ocean.App



如果main需要傳入參數:
  • mvn exec:java
    -Dexec.mainClass=tw.com.ocean.App
    -Dexec.args=arg0 arg1 arg2

參考資料:





maven學習 五 : 新增 dependency (替專案加入library關連)

OS        :windows7
maven   : 3
language: java  

說明:

  •  maven 在 pom.xml 中可以用來宣告程式中要用到的 Library,
    然後在該 pom.xml 所在的資料路徑中下達命令 「
    mvn install
    maven就會將pom.xml中所宣告的dependency相關連jar下載至
    本機的Repository,當編譯時maven會依pom.xml設定去找出jar連結進來。



Step1. 建立基礎 maven java se 專案   (create maven java se project)
  • mvn archetype:generate //command -DarchetypeArtifactId=maven-archetype-quickstart //這是maven java SE模板 -DinteractiveMode=false -DgroupId=tw.com.ocean //組織名稱(會成為name space) -DartifactId=helloworld //專案名稱
Step2. 打開 pom.xml (open pom.xml)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>tw.com.ocean</groupId>
  <artifactId>helloworld</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>helloworld</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Step3. 加入一個log4j的dependency (add log4j dependency)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tw.com.ocean</groupId> <artifactId>helloworld</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>helloworld</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>

Step 4. 執行 mvn install 指令 (excute mvn install)
  • 在pom.xml所在的路徑中,執行 mvn install。

如此就完成加入一個library依賴關係,而且maven會自動處理掉log4j有依賴的其他Library,非常方便。