250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Tomcat
- Source
- Docker
- Python
- git
- Open Source
- PostgreSQL
- 오픈소스
- jpa
- Exception
- STS
- error
- MSSQL
- maven
- myBatis
- oracle
- IntelliJ
- ubuntu
- spring
- Core Java
- MySQL
- SpringBoot
- JavaScript
- Thymeleaf
- Eclipse
- JDBC
- Spring Boot
- AJAX
- 설정
- 문서
Archives
- Today
- Total
헤르메스 LIFE
[Gradle] build.gradle 설정방법 본문
728x90
* Plugin
/** * plugin 설정 : JAVA, WAR(JAVA-WEB) * * java plugin을 설정하는 경우 프로젝트의 기본 디렉토리 구조는 다음과 같다. * src/main/java : 실제 서비스를 담당하는 자바 소스 코드를 관리하는 디렉토리. * src/test/java : 테스트 소스를 관리하기 위한 디렉토리. * 메이븐 빌드 툴은 서비스 소스 코드와 테스트 소스 코드를 분리해서 관리하며, * 배포 시 테스트 소스 코드가 같이 배포되지 않게 한다. * src/main/resources : 서비스에 사용되는 자원을 관리하는 디렉토리. * src/test/resources : 테스트 시에 필요한 자원을 관리하기 위한 디렉토리. * * war plugin * 프로젝트에서 war plugin을 사용하려면 build.gradle 파일에 다음과 같이 설정하면 된다. * war plugin은 java plugin과 의존관계에 있다. 따라서 빌드 스크립트에 war plugin을 추가하면 java plugin은 별도로 추가하지 않아도 된다. * * eclipse-wtp plugin * 웹프로젝트는 eclipse-wtp 플러그인으로 분리되었다. * 따라서, WTP 프로젝트를 생성하려면 eclipse-wtp 플러그인도 적용해야 한다. * eclipse-wtp를 적용하면 eclipse 플러그인은 명시하지 않아도 자동 적용된다. * * 웹프로젝트는 eclipse-wtp 플러그인으로 분리되었다. * 따라서, WTP 프로젝트를 생성하려면 eclipse-wtp 플러그인도 적용해야 한다. * eclipse-wtp를 적용하면 eclipse 플러그인은 명시하지 않아도 자동 적용된다. */ apply plugin: "java" apply plugin: "war" apply plugin: "eclipse" apply plugin: "eclipse-wtp" |
* 기본 설정
// JAVA Version 1.6 sourceCompatibility = 1.6 // 개발한 애플리케이션 버전 version = '1.0' // logback(slf4j)를 사용하기 때문에 모든 의존성에서 commons-logging는 제외 // commons-logging-xxx.jar 파일을 Maven에서 내려받지 않기 때문에 runtime 시 오류가 난다. [configurations.runtime, configurations.default]*.exclude( module: 'commons-logging' ) // JAVA 컴파일시 인코딩 설정 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' |
* 프로젝트 초기화
// 프로젝트 초기화 // 1. java source directory 생성 : src/main/java, src/test/java // 2. resource directory 생성 : src/main/resource, src/test/resource // 3. web source directory 생성 : src/main/webapp, src/main/webapp/WEB-INF // .settings 폴더의 org.eclipse.wst.common.component 파일을 설정한다. task initProject(description: 'initialize project') << { createDir = { println "create source directory: $it" if (!it.exists()) it.mkdirs() } sourceSets *.java. srcDirs*.each createDir sourceSets *.resources. srcDirs*.each createDir [webAppDir, new File(webAppDir, '/WEB-INF' ), new File(webAppDir, '/WEB-INF/spring' ), new File(webAppDir, '/WEB-INF/views'), new File(webAppDir, '/META-INF' )].each createDir } |
* webAppDir 변경
// war plug과 함께.. Web Root 폴더지정. // .settings 폴더의 org.eclipse.wst.common.component 파일을 설정한다. // 배포를 생각하지 않고 직접 프로젝트를 관리할 경우 사용한다. ( 사실 이럴 경우 의미가 없는 듯 하다. ) project.webAppDirName = 'WebContent' // Default 값은 src/main/webapp 임. 이렇게 변경됨. ( Default는 webapp 임.) /** * 의존성 설정 * Maven을 이용하여 Jar 파일을 내려받는다. */ repositories { flatDir { dirs "WebContent/WEB-INF/lib" } mavenCentral() maven { url "http://repo.spring.io/libs-release" } } dependencies { compile fileTree(dir: "WebContent/WEB-INF/lib", include: '*.jar') } |
* Eclipse 설정 수정
.settings 폴더의 org.eclipse.wst.common.component 파일을 직접 수정함. .classpath 파일을 직접 수정함.
Properties for Proejct > Proejct Facets ※ 추가 설정.
|
* 외부 jar 추가
// 의존성 설정에 사용할 프로퍼티 ext { encoding = "UTF-8" javaVersion = '1.7' encoding = 'UTF-8' versions = [ spring : '3.1.1.RELEASE', aspectj : '1.7.3', slf4j : '1.7.5', cglib : '2.2.2', jackson : '1.9.13', hibernate : '4.2.3.Final', projectlombok : '0.12.0' ] } repositories { flatDir { dirs "WebContent/WEB-INF/lib" } mavenCentral() maven { url "http://repo.spring.io/libs-release" } } def lib = [ // Servlet 버젼에 따라 Dependency 경로가 다름. //providedCompile "javax.servlet:javax.servlet-api:3.0.1" 'servlet' : [ "javax.servlet:servlet-api:2.5" , "javax.servlet.jsp:jsp-api:2.1" ], 'spring' : [ "org.springframework:spring-context:${versions.spring}" , "org.springframework:spring-context-support:${versions.spring}" , "org.springframework:spring-webmvc:${versions.spring}" , "org.springframework:spring-orm:${versions.spring}" , //'org.springframework.data:spring-data-jpa:1.3.4.RELEASE' ], 'aop' : [ "org.aspectj:aspectjrt:${versions.aspectj}" , "org.aspectj:aspectjweaver:${versions.aspectj}" , "cglib:cglib:${versions.cglib}" , "cglib:cglib-nodep:${versions.cglib}" ], 'hirbernate' : [ "org.hibernate:hibernate-entitymanager:${versions.hibernate}" , "org.hibernate:hibernate-envers:${versions.hibernate}" , 'org.hibernate:hibernate-validator:5.0.1.Final' ], 'hirbernate-related' : [ 'joda-time:joda-time:2.2' , 'joda-time:joda-time-hibernate:1.3' , 'com.google.guava:guava:14.0.1' ], 'etc' : [ //"javax.inject:javax.inject:1", //"org.codehaus.jackson:jackson-mapper-asl:${versions.jackson}", "commons-logging:commons-logging:1.1.1" , "commons-codec:commons-codec:1.8" , "commons-dbcp:commons-dbcp:1.4" , "mysql:mysql-connector-java:5.1.26" , "javax.servlet:jstl:1.2" , "org.projectlombok:lombok:${versions.projectlombok}" ], 'test' : [ "org.springframework:spring-test:${versions.spring}" , "junit:junit:4.+" , "org.mockito:mockito-core:1.9.0" ] ] /** * 의존성 설정 * Maven을 이용하여 Jar 파일을 내려받는다. */ dependencies { providedCompile lib.servlet compile lib.spring, lib.aop, lib.etc } |
* war 파일 생성
war { exclude 'WEB-INF/lib/**' exclude 'WEB-INF/classes/**' // copy properties file in classes so that // they may be loaded from classpath from('resources') { include '*.properties' into 'WEB-INF/classes/' } //webInf { from 'src/additionalWebInf' } // adds a file-set to the WEB-INF dir. //classpath fileTree('additionalLibs') // adds a file-set to the WEB-INF/lib dir. //webXml = file('src/main/webapp/WEB-INF/web.xml') // copies a file to WEB-INF/web.xml } |
728x90
'Build' 카테고리의 다른 글
[Maven] 수동으로 jar파일 다운받는 방법은? (0) | 2020.11.12 |
---|---|
[Maven] 최신버젼 실행 시 오류 (0) | 2020.11.12 |
[Gradle] Gradle task 실행 (0) | 2014.03.08 |
[Gradle] 개발환경 설정 (0) | 2014.03.08 |
[Gradle] Gradle의 소개 (0) | 2014.03.08 |