■ gradle 설정파일 준비하기

# gradle 빌드 도구를 실행할 때 필요한 설정 파일을 준비합니다.


cmd 명령창에서 프로젝트 폴더 경로를 찾아가 다음의 명령어를 줍니다.

> gradle init

build.gradle 등의 파일이 생성됩니다. 이제 build.gradle 설정 파일을 편집하면 됩니다.



■ gradle 사용법

## gradle에서 사용할 수 있는 도구를 확인합니다.


cmd 명령창에서 프로젝트 폴더 경로를 찾아가 다음의 명령어를 줍니다.

> gradle tasks



## gradle에 자바 빌드 도구 플러그인을 추가합니다.

[bulid.gradle 파일 txt로 열기]


apply plugin: 'java'


cmd 명령창에서 프로젝트 폴더 경로를 찾아가 다음의 명령어

> gradle tasks --all 를 주면 자바 빌드 도구 플러그인이 추가된 것을 확인할 수 있습니다.




## gradle 자바 빌드 도구 사용하기
[자바 소스 컴파일하기]

src > main > java > example > Hello.java 파일을 만들어 봅니다.


> gradle [명령(task) 이름]
> gradle compileJava

* (src/main/java/ 폴더의 모든 자바 소스 파일을 컴파일 한 후 그 결과를 build/classes/main/ 폴더에 저장한다.)

그러면 build > classes > main > example 폴더에서 컴파일된 Hello.class 파일이 
생성된 것을 확인할 수 있습니다.
실행 결과 : build/classes/main/example/Hello.class 파일 생성


[빌드 관련 모든 폴더와 파일 제거하기]
> gradle clean

실행 결과 : build 폴더가 제거됩니다.



[resources 폴더 파일을 빌드 폴더에 복사하기]

> gradle processResources


* (src/main/resources/ 폴더의 모든 파일이 build/resources/main/ 폴더에 복사된다.)


실행 결과 : build/resources/main/beans.properties  파일 생성


[compileJava 기능 + proccessResources 기능 = classes]

> gradle classes


실행 결과 : CompileJava와 processResources 명령을 모두 실행한 결과와 같다.


[JAR 배포 파일 만들기]
> gradle jar

실행 결과 : classes 명령을 실행한 후 .jar 파일을 생성한다.



[빌드 전 과정을 실행하기]

> gradle build


실행 결과 : 컴파일 ---> 단위 테스트 ---> JAR 파일 생성 등 빌드 전과정을 실행한다.



Java plugin - tasks





## gradle에 이클립스 빌드 도구 플러그인을 추가합니다.

[bulid.gradle 파일 txt로 열기]


apply plugin: 'eclipse'



[이클립스 프로젝트 설정 파일 삭제하기]
> gradle cleanEclipseProject

실행 결과 : .project 파일만 제거한다.



[이클립스 관련 모든 설정 파일 만들기]
> gradle eclipse

실행 결과 : 
플러그인이 있다면 그 플러그인과 관련된 설정 파일도 만든다.
만약 따로 플러그인이 등록되지 않았다면 .project 파일만 생성될 것이다,.



[이클립스 관련 모든 설정 파일 삭제하기]
> gradle cleanEclipse

실행 결과 : 
플러그인이 있다면 그 플러그인과 관련된 설정 파일도 제거한다.
만약 따로 플러그인이 등록되지 않았다면 .project 파일만 삭제될 것이다,.



## 웹 프로젝트 만들기

[웹 관련 플러그인 등록]

[build.gradle]


apply plugin: 'eclipse-wtp'


 > 이클립스 설정 파일을 다루는 도구

 > 웹 관련 설정 파일을 다루는 도구가 들어 있는 플러그인


apply plugin: 'war'


 > WebArchive 배포 파일을 만드는 도구가 들어 있는 플러그인




블로그 이미지

필로그래머

,

켓의 디렉토리 구조


─────



 > bin
- 톰캣 서버 실행과 관련된 쉘 스크립트 파일 (.sh, bat 등)을 모아둔 곳입니다.

 > conf
- 톰캣 서버를 실행할 때 참조할 설정 파일을 모아둔 곳입니다.

 > lib
- 톰캣 서버를 구성하는 자바 클래스(classs) 라이브러리들을 모아둔 곳입니다.
 
  > logs
- 톰캣 서버를 실행하는 동안 실행 정보와 오류 정보를 기록한 파일을 모아둔 곳입니다.
  client로부터 get 요청이 들어왔는지 post 요청이 들어왔는지도 알 수 있고 
  마지막으로 요청한 정보가 무엇인지, ip address는 어떻게 되는지 등도 
  알 수 있습니다.

  > temp

- 톰캣 서버가 실행하는 동안 임시 데이터를 보관하는 디렉토리입니다.


  > work

- 톰캣 서버가 JSP를 실행할 때 그 중간 파일을 보관하는 곳입니다.


  > webapps

- 웹 애플리케이션을 모아둔 곳입니다.



개발용 웹 애플리케이션 실행 환경

 $workspace/Servers/localhost.../*.xml


- 톰캣 서버의 설정 파일을 복사해 옵니다.
- $tomcat_home/conf 에서 설정파일을 복사해서 생성된 파일입니다.
- 여기서 편집한 설정 파일은 실행환경 임시폴더인 아래 폴더에 저장이 됩니다.

$workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0


또한 

 $workspace/.metadata/.plugins/org.eclipse.wst.server.core/ 폴더에는  
 이 실행환경에서만 사용할 폴더들이 생성이 됩니다.

>logs
>temp
>work
>webapps
>wtpwebapps > 생성한 웹프로젝트 폴더(ex : web01)


그리고 생성한 웹프로젝트 폴더(ex: web01)에는 $workspace/web01/src/WebContent/에 있는 모든 폴더와 파일이 복사가 되구요,  
> web01 > WEB-INF 폴더 안에는 $workspace/web01/src/WebContent/WEB-INF에 있는 모든 폴더와 파일이 복사가 됩니다.

$workspace/web01/bin/ 에는 $workspace/web01/src/에서 컴파일된 *.class 파일이
저장되고 *.properies *.xml 등의 파일이 복사되어 저장됩니다.




─────

톰캣의 디렉토리 구조와 이클립스 웹 프로젝트 폴더 구조





# .class 파일은 java 파일에서 블록 단위의 class {} 마다 생성이 됩니다.  

## 이클립스에는 버그가 있다. 이클립스는 톰캣 서버를 실행시키면 웹 애플리케이션
    프로젝트에서 실행환경 임시폴더(tmp0)로 파일들을 복사 -> 배치 (deploy)시키는데
    자꾸 이전 파일이 로딩되는 경우가 있는 것이다. 이럴 땐 Servers 창에서 서버를
    중단시키고 삭제하고 다시 추가하면 된다. 그러면 다시 실행환경 임시폴더가 생성될 것이다. 
    다시 프로젝트 폴더를 만드는 바보 같은 행동은 하지 말자!
    

 이클립스 웹 어플리케이션 프로젝트 폴더 구조


 이클립스에서 웹 프로젝트를 다룰 때의 폴더 구조입니다.
 IntelliJ 혹은 NetBeans 등 다른 IDE를 사용할 때는 폴더 구조가 다를 수 있습니다.

$workspace/web01
 > src
- 자바 소스 파일을 두는 곳입니다.
 > WebContent : HTML, CSS, JavaScript, GIT 등 정적 웹 자원(static resource)을 두는 곳입니다. JSP 파일도 이 폴더 안에 두는 것이 일반적입니다.
> WEB-INF : 웹 애플리케이션 정보 파일을 두는 곳입니다.
> classes : 자바 클래스 파일(.class)을 두는 곳입니다.
> lib : 자바 라이브러리 파일(.jar)을 두는 곳입니다.
> web.xml : 웹 애플리케이션 설정 파일입니다.



■ 웹 어플리케이션 배치 폴더구조

$deployment_dir : HTML, CSS, JavaScript, GIT 등 정적 웹 자원(static resource)을 두는 곳입니다. JSP 파일도 이 폴더 안에 두는 것이 일반적입니다.

 > WEB-INF : 웹 애플리케이션 정보 파일을 두는 곳입니다.

> classes : 자바 클래스 파일(.class)을 두는 곳입니다.
> lib : 자바 라이브러리 파일(.jar)을 두는 곳입니다.
> web.xml : 웹 애플리케이션 설정 파일입니다.





블로그 이미지

필로그래머

,