아주 간단히 풀어보자.

우선 설명하자면 프로젝트 생성시에 메이븐 프로젝트 ...에 대한 뭔가를 할 필요는 없다.

이런게편한거지; 예제로는 Jackson 라이브러리를 메이븐을 통해서 관리한다고 가정하고 진행한다.


1. 프로젝트 가장 밖에 pom.xml  을 생성하자.

2. http://maven.apache.org/pom.html 내용을 보고

The Basics

The POM contains all necessary information about a project, as well as configurations of plugins to be used during the build process. It is, effectively, the declarative manifestation of the "who", "what", and "where", while the build lifecycle is the "when" and "how". That is not to say that the POM cannot affect the flow of the lifecycle - it can. For example, by configuring the maven-antrun-plugin, one can effectively embed ant tasks inside of the POM. It is ultimately a declaration, however. Where as a build.xml tells ant precisely what to do when it is run (procedural), a POM states its configuration (declarative). If some external force causes the lifecycle to skip the ant plugin execution, it will not stop the plugins that are executed from doing their magic. This is unlike a build.xml file, where tasks are almost always dependant on the lines executed before it.

<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>org.codehaus.mojo</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

내용을 참고하여 빈 pom.xml 을 만들어보자. 이때 groupId 나 artifiactid , 버전 등은 알아서 수정해라.


3. http://wiki.fasterxml.com/JacksonDownload 에 가서 Jackson 1.x 에 대한 저장소 정보를 가져다가 붙여라.

현재 버전은 아래와 같이 되어있더라.

<repositories>
  <repository>
   <id>codehaus-snapshots</id>
   <url>http://snapshots.repository.codehaus.org</url>
  </repository>
 </repositories>

 <dependencies>
  <dependency>
   <groupId>org.codehaus.jackson</groupId>
   <artifactId>jackson-mapper-asl</artifactId>
   <version>1.9.11</version>
  </dependency>
 </dependencies>



4. 해당 파일을 저장하고 마우스 오른쪽 눌러서 가장 아래에 있는 Add As Maven... 을 선택한다.

그러면 자동으로 긁어와서 external lib 에 들어가 있는걸 확인할 수 있다.

만약 안나온다면 오른쪽에 탭으로 줄여져 있는 Maven Project 를 선택해서 탭을 확장한뒤에 로그를 봐도 된다.

(에러가 난다면 왜 나는지 등의 로그를 확인 가능하다 )



'IT > java' 카테고리의 다른 글

call by ref ? value?  (0) 2013.06.21
intellij 한글 깨짐 (톰캣서버 돌릴때...)  (0) 2013.04.16
intelliJ 에서 개뱔해보기...  (2) 2012.12.31
javadoc... linke  (0) 2012.10.18
실행가능한 jar 묶기  (0) 2012.03.07


mysql  이야 블로그에도 잘 정리되어있으니...


오라클로 어떻게 연결하는지 확인해보자.

방법은 다양할것인데, 이번에 보여줄 방법은 intelliJ 화면에서 oracle 드라이브를 다운받아 하는 것으로 한다.




이거하나로 끝해도 될것 같은데; 

여기까지 오는 과정은 http://blogs.jetbrains.com/idea/2012/12/design-your-database-with-intellij-idea-12/#comments 를 참고하면 된다.


중요한 부분은 Database URL: 인데

jdbc:oracle:thin:@//IP:PORT/SID 를 적어주면 된다. 


그 위의 JDBC Driver File 은 .. 본인의 경우는 oracle 골라서 다운받는걸로 진행했다. (어차피 고르면 다운로드 버튼 생기고 저장할 위치만 정하면 끝나므로 간단하다) 


베리 감사 to 안광운 ( 이분의 삽질덕분에 이 정리가 가능해졌음)


기본지식

1. 이클립스로 치면, 모델, 뷰, 뷰에서 웹, 모바일.. 등 각각이 프로젝트화 되어있고 그것에 대해 서로 디펜던시 거는 구조로 되어있을 것이다.

인텔리J 에서는 프로젝트는 바로 모듈에 해당한다고 보면 된다. 


인텔리J 에서 프로젝트는 다른 프로젝트를 가져올 수 있는데, 이때 가져오는 방식은 해당 프로젝트를 모듈 취급하여 가져오게 된다.

해서 가장 밖의 프로젝트... 는 각 모듈을 담아두는 프로젝트이다. (의미상으론 이게 진짜 프로젝트인게 맞지 않은가? )



2. 확장자 iml 은 하나의 모둘의 대표 파일이다. (즉 이걸 가져오거나 열면 해당 모듈.. 즉 각각의 프로젝트가 열린다.)


---------------------------------------------------------------------------------------------------------------

순서

1. 우선 가장 큰 .. 각 모듈이 담길 컨테이너? 프로젝트를 하나 만들자. (이때 other 에 empty project 를 선택한다)


##  프로젝트를 만든뒤에 iml 에 대해 VCS 에서 취급할지 물어오는게 있다면 N 라고 해면 VCS 에 특정 IDE 의 설정파일이 올라가는건 막을 수 있다.

   (이 부분은 후에 나올 수 있는데, 그때에 설정해도 된다)



2. 빈 프로젝트에서 VCS 를 통해 해당 프로젝트의 저장소에서 대상 프로젝트(모듈)을 가져온다. 



3. 체크아웃할 대상을 고르면 어디로 가져올지 고르게 된다. 이때 가장 밖의 프로젝트(프로젝트, 즉 모듈들을 담을 프로젝트) 를 선택하여 그 아래로 해당 체크아웃의 모듈이 생성되도록 한다.( 즉 1번에서 만들었던 모든것을 담을 프로젝트)



4.그러면 이제 그 이하로 어떻게 디렉토리를 만들것인지를 물어오는데 체크아웃이름으로 새로 디렉토리를 정한걸로 선택합니다. 즉 대표가 A 였다면 'A/체크아웃 이름'  이것을 선택하면 됩니다.



5. 이것은 저장소에 따라 다른데 저는 1.7 선택 


6. 가져온뒤에 이 다이얼로그가 뜹니다. 열기로 합시다. (열면 iml 이 생성되던가함 )


7. 가져온 체크아웃은 지금 우리가 프로젝트로 만들고 있는겁니다.(즉 현재 열어놓은곳에서 했다고 거기에 추가되는게 아니라 프로젝트를 만드는 중인것임.) 새로운 윈도우에 뜨도록 선택합시다 (New Window) 



8. 그러면 새로운 창으로 뭔가가 뜨고 좀 뒤에 왼쪽 project 를 선택하시면 아래와 같이 새로 만든 프로젝트가 보입니다.

그리고 이 프로젝트는 닫읍시다.



9. 대표 프로젝트에서 File -> import module 을 선택하여 앞에서 체크아웃해온 프로젝트를 모듈로 가져옵시다.

이때 주의 할점은 선택하는 대상은 iml 파일입니다. 





# 이건 여담인데, 위에 체크아웃 했을때에 좀 있으면 아레 오른쪽에 Event Log 가 표시되고 클릭하면 아래와 같이

인텔리J 가 프레임웍 설정을 찾았다고 설정할거냐고 물어옵니다. 이런점이 이클립스와 다른점이라고 보시면됩니다.

당연 OK




10. 해당 모듈에 보면 pom.xml 이 있습니다. maven 프로젝트로 관리되는 거구요. 클릭후 오른쪽마우스 눌러서 

Add As Maven Project 를 선택합니다. ... 역시 이런점또한 이클립스보다 편하다고 말할 수 있겠군요. 




11. maven 프로젝트등을 다 가져온뒤에 프로젝트를 마우스로 클릭하고, F4 를 누르면 프로젝트 구조.. 창이 뜹니다.

Project 를 선택후 SDK 가 미선택으로 되어있으면 고릅니다.


그리고 아래에 보면 에러가 표시되는데요. 이런경우 에러를 클릭하면 내용이 나옵니다.

저의 경우는 이클립스에 대한 jar 등을 찾게 되어있어서, 해당 디펜던시는 삭제했습니다.

선택후 아래에 '-' 누르면 됩니다. 





# 참고로... 설정파일을 intelliJ에 맞게 수정후 해당 파일은 VCS 대상에서 제외시키고 싶으시다면...

아래와 같이 뭔가 수정후 해당파일에서 마우스 오른쪽 -> move to changeList 


아래에 그 목록을 ignore 라고 만들고 ok 눌러주면 목록이 생성됩니다. 






'IT > java' 카테고리의 다른 글

call by ref ? value?  (0) 2013.06.21
intellij 한글 깨짐 (톰캣서버 돌릴때...)  (0) 2013.04.16
intellij 에서 maven 생성 간단히 처리하기  (0) 2013.01.03
javadoc... linke  (0) 2012.10.18
실행가능한 jar 묶기  (0) 2012.03.07


1. new project

2. import project from external model

3. eclipse 

4. eclipse 프로젝트 디렉토리 선택

5. 프로젝트 선택

6. import 되고난후 모듈을 골라서 F4를 누르고 JDK 를 제대로 되게 선택해준다.

7. 프로젝트 부분에 pom.xml 파일이 보일것이다. 마우스 오른쪽 누르고 Add as Maven Project 를 선택한다.


그러면 메이븐 으로 부터 jar를 가져오면서 기본설정 끝






20120716

우선 .. 아래 말처럼 간단하지 않았다. 그렇다고 복잡한것 또한 아니다.
차례차례 해보자.

1. git을 설치하자.
가면 나오는데 사실 다운로드라기 보단 apt-get 을 이용한 설치이다.

sudo apt-get install git-core


2. 그리고 설정하자. 사실 git에서 저장소를 생성하면 step by step 메뉴얼(?)이 나오는데 그대로 해도된다. (물론 내부에 your name 같은부분은 수정하라)

설정이 제대로 끝났다면 github 상의 새로 만든 저장소를 클릭했을때 다시 가이드가 나오지 않는다.

3. intelliJ의 file --> settings --> Version Control 을 선택하시고 + 를 눌러서 추가하거나 아래에 자동적으로 추가할.. 수 있게 나온버튼이 뜬다면 누르면 추가된다. 이때 directory 에는 현재 프로젝트의 홈디렉토리가 설정되고 VCS 에는 git이 들어가면된다.




==============================================================================

휴...
생각보다 간단했는데;

우선 gitHub의 사용법을 알아야 한다.
키도 생성해야하고;

gitHub에 계정을 만들고 생성을 누르면 간단히 진행되는것 처럼 보인다.
허나 계속 저장소를 클릭해서 저장소 주소를 보려고하면
 주소는 안보이고 무슨 윈도프로그램깔고 어쩌구 저쩌구.. 과정이 보인다.


우선 gitHub 에 대해서 알아야 하는데, gitHub 의 특징은 로컬 저장소를 가진다는것이다.
SVN,CVS 는 서버 클라이언트 기반이라면 gitHub 은 분산구조이다. 즉.. 저장소가 작업하는 모든 사용자는 하나씩 가지게 된다.

거기에 커밋이 일어나는것이다. 즉 어떤 프로젝트의 forking이 필요하다면 이런경우 아주 유용하다.

아무튼 저장소를 만든뒤 보이는 내용을 그대로 해줘야 로컬저장소가 생기는것이니, 꼭 따르기 바란다.

그리고 키도 생성하고~ 모든것이 끝났다면? 이제 진짜 진행이지... 아무튼 모든 과정을 끝내면 이제 gitHub 저장소 주소등이 보이는 화면으로 넘어간다.

이제 intelliJ에서 체크아웃 해오면 된다.


자.. 이건 체크아웃 해오는 얘기를 한것이고, 여기서 할얘기는 반대로 intelliJ 에서 작업한것을 올리는것이다.

1. file --> settings --> Version Control --> 에가서 프로젝트의 VCS를 git으로 맞추자.

2.  프로젝트의 최상위로 가서 (즉 프로젝트 이름이 되겠지?) 선택후 
VCS -->  import into version control --> share project on gitHub
만약 .. 프로젝트가 선택된 상태가 아니라면 위의 메뉴가 안보일 수 있다.

3. 이미 전에 연결한 이력이 있다면 자동연결되고 저장소 이름을 물어온다.
이름을 정하고 설명적으면 끝~


... 아주 심플하지 않은가?

물론 이건 gitHub을 사용할때의 얘지만 :)

왜 사람들이 intelliJ intelliJ 하는지... 알만하다; 
스프링 작업 및 이번 gitHub 적용까지... 지원이 좋다;

아무래도 할인하게 되면 하나 사야할것 같다. 작년에도 4월 중순.. 부활절쯤인가에 했던데.. 부디; 









해당 글은 intelliJ 에서 스프링 MVC 를 해보고자 하는 저같은 초보!! 들에게 필요한 내용을 위주로 담고 있습니다.
고로 좀더 나이스한 설정법과 기타 미려한 내용들은 다 빠지고 ...

그야 말로 우선 가장 작은 단위를 만들어서 돌려보는것이 의의를 가지고 있습니다.

이렇게 한번 돌린것을 기반으로 변경해나가시면 훌륭한 프레임웍을 구성하실 수 있을거라 믿습니다.

참고


-------------------------------------------------------------------------------

1. File --> new Project --> create project from scratch


2. 프로젝트 이름정하고 아래 모듈이름도 정한다음...

모듈은 Maven Module 로 선택하고 

다음을 누른뒤 화면에서 Create from archetype 를 체크하면 프로토타입이 나온다.

(안나오면 언체크 한뒤 다시 체크하면됨)


org.apache.maven.archetypes:maven-archetype-webapp

위의것을 선택하면 기본 구조가 나온다.




3. pom.xml에 

 <properties>

        <java-version>1.6</java-version>

        <org.springframework-version>3.0.6.RELEASE</org.springframework-version>

        <org.aspectj-version>1.6.9</org.aspectj-version>

        <org.slf4j-version>1.5.10</org.slf4j-version>

    </properties>

추가하고  (일종의 변수이다...변수선언.. 이걸 한다고 해서 해당 버전으로 고정되는게 아니라 저걸 정의하는곳에 이용할뿐이다)

dependencies 아래에

 <dependency>

      <groupId>org.springframework</groupId>

      <artifactId>spring-webmvc</artifactId>

      <version>${org.springframework-version}</version>

    </dependency>


스프링 소스 홈페이지에 보면 maven 설정을 위한 내용이 있다. http://www.springsource.org/spring-framework#maven   

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-context</artifactId>
 <version>3.1.1.RELEASE</version> 

</dependency> 

추가하고, 오른쪽 메이븐프로젝트 사이드바에서 reimport를 하든지 이벤트로그에서 

Maven projects need to be imported: Import Changes Enable Auto-Import 에서 Import Changes를 선택하면된다.




4. web.xml

우선 web-app 태그에 값으로

version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

를 넣는다.

<web-app

  version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


 web-app 안에 서블릿 설정 추가


    <servlet>

        <servlet-name>example</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>


    <servlet-mapping>

        <servlet-name>example</servlet-name>

        <url-pattern>/</url-pattern>

    </servlet-mapping>


 


5. src->main 아래에 디렉토리 java 생성하고 F4를 눌러서 프로젝트 구조를 띄운다음

오른쪽에서 좀전에 만든 java를 선택하고 마우스오른쪽 -->make directory as --> Source를 선택하여 소스디렉토리로 사용


6. 해당 소스디렉토리 이후레 패키지 생성 ex. com.sib.test


그리고 클래스를 하나 만들자

package com.sib.test;


import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;


/**

 * Created by IntelliJ IDEA.

 * User: nexGen

 * Date: 12. 3. 27

 * Time: 오후 2:29

 * To change this template use File | Settings | File Templates.

 */


@Controller

public class HelloWorldController {


    @RequestMapping("/helloWorld")

    public ModelAndView helloWorld() {

        ModelAndView mav = new ModelAndView();

        mav.setViewName("helloWorld");

        mav.addObject("message","Hello World");

        return mav;

    }

}



그리고 view 를 만들어두자.위에서 ViewName을 helloWorld로 했으니..

WEB-INF 밑에 views 디렉토리를 만들고 helloWorld.jsp를 추가

hello<br/>


${message}~~~



간단하게 만들었다.



7. 이제 web.xml에 스프링관련 설정.xml 을 추가하자.

서블릿이름-servlet.xml 을 하든지 아래처럼 명시적으로

<servlet> 안에 

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>

</init-param>


관리하기 쉽도록 명시적으로 처리하자.

해당 디렉토리를 만들고 파일도 만들면 web.xml에 있는 에러내용이 없어질것이다.

해서 만들어진 결과 

최종 web.xml

<!DOCTYPE web-app PUBLIC

 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

 "http://java.sun.com/dtd/web-app_2_3.dtd" >


<web-app

  version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <display-name>Archetype Created Web Application</display-name>


    <servlet>

        <servlet-name>example</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>


    <servlet-mapping>

        <servlet-name>example</servlet-name>

        <url-pattern>/</url-pattern>

    </servlet-mapping>


</web-app>






빈의 오토스캔을 위해 servlet-context.xml에

<context:component-scan base-package="com.sib.test"/>

를 넣어야 하는데... context 태그를 쓰기위해서는 beans 선언에 추가할것이 있다.


xmlns:context="http://www.springframework.org/schema/context"

를 하면 context 태그를 쓸 수 있다. 우선 아래를 참고해라


<?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:p="http://www.springframework.org/schema/p" 

    xmlns:context="http://www.springframework.org/schema/context"

    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">


    <context:component-scan base-package="org.springframework.samples.petclinic.web"/>


    // ...


</beans>


결과 최종 servlet-context.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/mvc"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xmlns:beans="http://www.springframework.org/schema/beans"

       xmlns:context="http://www.springframework.org/schema/context"


       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.0.xsd

       http://www.springframework.org/schema/mvc

       http://www.springframework.org/schema/mvc/spring-mvc.xsd">


       <context:component-scan base-package="com.sib.test"/>


    <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <beans:property name="prefix" value="/WEB-INF/views/" />

        <beans:property name="suffix" value=".jsp" />

    </beans:bean>


</beans:beans>


 



tomcat에 소스를 deploy  해야한다.


그전에 maven 에서 소스를 package 해야한다. (war 생성)

compile 하고 package 해야하는지는.. 잘 모르겠고;


8. 우선 톰켓이 없으면 설정한다. 프로젝트 최상위에 마우스 선택후 Add Framework Support

--> application server --> tomcat


다음 상단에 play 바 왼쪽에 셀렉트 박스에서 톰켓을 선택하고 다시 선택하여 Edit Configurations 선택

--> deployement 탭을 선택하여 + 표시.. 선택 --> Artifact --> 나오는 war 선택


이제 서버기동!



3월 27, 2012 3:24:55 오후 org.springframework.web.servlet.FrameworkServlet initServletBean

정보: FrameworkServlet 'example': initialization started

3월 27, 2012 3:24:55 오후 org.springframework.context.support.AbstractApplicationContext prepareRefresh

정보: Refreshing WebApplicationContext for namespace 'example-servlet': startup date [Tue Mar 27 15:24:55 KST 2012]; root of context hierarchy

3월 27, 2012 3:24:55 오후 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions

정보: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]

3월 27, 2012 3:24:56 오후 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons

정보: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@60bd76d7: defining beans [helloWorldController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.web.servlet.view.InternalResourceViewResolver#0]; root of factory hierarchy

3월 27, 2012 3:24:56 오후 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler

정보: Mapped URL path [/helloWorld] onto handler 'helloWorldController'

3월 27, 2012 3:24:56 오후 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler

정보: Mapped URL path [/helloWorld.*] onto handler 'helloWorldController'

3월 27, 2012 3:24:56 오후 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler

정보: Mapped URL path [/helloWorld/] onto handler 'helloWorldController'


servlet 'example'을 기동했고 mapping 정보를 읽어왔다.




http://localhost:8080/helloWorld


해보자. 나온다~



+ Recent posts