2010.05.08 11:07
Maven을 통해 build를 하다보면 가끔 자바 버전의 하위호환성 문제로 인해 build가 되지 않을 때가 있다.

> 에러내용
  에러내용중에 Java 버전과 관련된 내용이 포함되어 있음을 발견할 수 있다.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.000s
[INFO] Finished at: Sat May 08 11:06:22 KST 2010
[INFO] Final Memory: 3M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project HibernateEntity: Compilation failure: Compilation failure:
D:\workspace\HibernateEntity\src\main\java\kr\nextree\nexbay\domain\entity\User.java:[15,1] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)

@Entity


> 해결방법
  pom.xml에 다음과 같이 maven compile plug-in을 선언하고 java 버전을 세팅해준다.

  <build>
    <plugins>
   <plugin>
     <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
      </plugin>
 </plugins>
  </build>




Posted by kimgisa.net
2010.05.04 00:14
Maven은 의존하여 사용하고 있는 라이브러리의 성격에 따라 사용범위를 지정할 수 있다.
JUnit과 같은 라이브러리는 테스트에만 사용하며 배포시에는 필요하지 않다.

 라이브러시 사용범위에 따른 5가지 Scope의 의미
Scope  적용범위
compile  scope를 지정하지 않은 경우 기본범위.
 컴파일할 때도 사용되고, 배포할  때도 포함되어야 하는 라이브러리 
provided   컴파일 시점에는 필요하지만, 배포할 때는 포함되지 않는 라이브러리.
 예를 들어, servlet.jar는 서블릿컨테이너에서 제공되므로 컴파일시에는 필요하지만 배포될 필요는 없음 
runtime  컴파일 시에는 사용되지 않지만 실행시에는 필요한 라이브러리 
test  테스트 컴파일 및 테스트 실행 시에만 사용되는 라이브러리
 예를들어, JUnit은 테스트시에만 필요함
system  provided와 유사하나, jar파일을 저장소(repository)에서 검색하지 않음. 즉 jar파일을 직접 제공해 주어야 함  


Posted by kimgisa.net
2008.07.11 19:36

음과 같이 특정 개체에 지정한 이벤트와 자바스크립트 함수를 바인딩하거나 해제할 수 있다.(IE전용)
한개체의 동일한 이벤트에 여러개의 함수를 붙이는 것도 가능하다. 수행되는 순서는 Stack이다. (후입선출)


아래 방법은 IE에서만 지원하는 방법이다.

> 사용법
개체명.attatchEvent("이벤트명", 함수명); // 이벤트 등록시
개체명.detachEvent("이벤트명", 함수명); // 이벤트 등록해제시


> 예제 - 화면로드 후 "HelloWorld!!" 출력하기


<script language="JavaScript">
   // 이벤트 등록
   window.attachEvent("onload", hello);

   // Hello world!!! 를 출력하는 함수
   function hello() {
       alert("Hello World!!!");
   }

</script>



이벤트에 등록된 함수를 해제하려면 다음과 같이 detachEvent를 사용한다.
window.detachEvent("onload", hello);


................
※ 주의 : attatchEvent를 이용한 이벤트 처리시, 메모리 누수가 발생할 수 있으므로 주의해야 한다. 참조문서
※ 참고 : Mozilla계열의 브라우저(Firefox, Opera)에서는 addEventListener를 사용하면 된다. (구글신 참조)
Posted by kimgisa.net