remagine

혼자서 웹 서비스 만들어보기 본문

개인프로젝트 - 웹소설 사이트

혼자서 웹 서비스 만들어보기

remagine 2017. 6. 12. 18:30

혼자서 웹 서비스 만들어보기

https://github.com/remagine/webNovel/tree/develop


1. gradle 프로젝트 시작하기


gradle init --type java-library


command 창을 열고 원하는 path에서 상기 명령어를 실행시킵니다.


예쁘게 만들어지는 gradle java project

(물론 사용하시는 컴퓨터에 gradle이 깔려있어야 합니다.)



2. git에 프로젝트 등록하기


이제 해당 directory 에서 git bash를 실행합니다.


1
2
3
4
5
6
7
git init
git add .
git commit -m "first commit"  <-- .gitignore 설정을 하고 하는 것을 추천
git remote add origin "github.URL"
git push --set-upstream origin master
 
 
cs


github, gitlab에 내 repository를 먼저 만든 후 위에 커맨드를 git bash에서 실행하면 됩니다.


.gitignore설정은 나중에 추가해서 적용시킬 수 있지만 


먼저 설정하고 하시는 게 편합니다. github에 파일을 참조하세요.



3. gradle 프로젝트 이클립스 import


build.gradle이라는 파일을 열어서


/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'Arthur' at '17. 6. 12 오전 11:14' with Gradle 2.14.1
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.14.1/userguide/tutorial_java_projects.html
 */
 
// Apply the java plugin to add support for Java
group 'com.arthur.webnovel'
version '0.0.1-SNAPSHOT'
 
apply plugin: 'java'
apply plugin: 'eclipse' <--이 지점에 추가한다.
apply plugin: 'spring-boot'
 

apply plugin : 'eclipse'를 추가해주고

Command 창에서 gradlew eclipse를 실행하면 

이제 이클립스에서 해당 프로젝트를 Import할 수 있습니다..




4. build.gradle 작성하기


gradle의 의존성 관리는 build.gradle에서 진행됩니다.


자유롭게 dependency를 추가할 수 있습니다.


이번 프로젝트에서 사용할 build.gradle 의 초기 상태입니다.


/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'Arthur' at '17. 6. 12 오전 11:14' with Gradle 2.14.1
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.14.1/userguide/tutorial_java_projects.html
 */
 
// Apply the java plugin to add support for Java
group 'com.arthur.webnovel'
version '0.0.1-SNAPSHOT'
 
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
 
sourceCompatibility = 1.8
 
final SPRING_VERSION = '4.2.4.RELEASE'
final SPRING_BOOT_VERSION = '1.3.6.RELEASE'
 
final TOMCAT_VERSION = '8.0.30'
final HIBERNATE_VERSION = '5.0.7.Final'
final COMMONS_LANG3_VERSION = '3.4'
final GUAVA_VERSION = '19.0'
final JACKSON_VERSION = '2.6.4'
final RYTHM_VERSION = '1.2.0'
final SPRING_RYTHM_VERSION = '1.3.6'
final HIKARI_VERSION = '2.3.13'
final POSTGRESQL_JDBC_VERSION = '9.4.1207.jre7'
 
final SLF4J_VERSION = '1.7.13'
final LOGBACK_VERSION = '1.1.3'
 
 
// In this section you declare where to find the dependencies of your project
buildscript{
    repositories {
        jcenter()
    }    
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:1.3.6.RELEASE"
        classpath 'io.spring.gradle:dependency-management-plugin:0.6.1.RELEASE'
    }
}
 
repositories {
    jcenter()
}
 
configurations {
    all*.exclude group: 'commons-logging', module: 'commons-logging'
}
 
configurations.all {
    resolutionStrategy {
        cacheDynamicVersionsFor 10'minutes'
        cacheChangingModulesFor 0'seconds'
    }
}
 
// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.21'
 
    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
    
    compile "org.springframework.boot:spring-boot:${SPRING_BOOT_VERSION}"
    compile "org.springframework.boot:spring-boot-autoconfigure:${SPRING_BOOT_VERSION}"
 
    compile "org.apache.tomcat.embed:tomcat-embed-core:${TOMCAT_VERSION}"
    compile "org.apache.tomcat.embed:tomcat-embed-logging-juli:${TOMCAT_VERSION}"
 
    compile "org.springframework:spring-context:${SPRING_VERSION}"
    compile "org.springframework:spring-webmvc:${SPRING_VERSION}"
 
    compile "org.slf4j:slf4j-api:${SLF4J_VERSION}"
    compile "org.slf4j:jcl-over-slf4j:${SLF4J_VERSION}"
    compile "org.slf4j:jul-to-slf4j:${SLF4J_VERSION}"
    compile "org.slf4j:log4j-over-slf4j:${SLF4J_VERSION}"
    compile "ch.qos.logback:logback-classic:${LOGBACK_VERSION}"
 
    compile("org.rythmengine:rythm-engine:${RYTHM_VERSION}") { changing = true }
    compile("com.ctlok:spring-webmvc-rythm:${SPRING_RYTHM_VERSION}") { changing = true }
 
    compile "com.google.guava:guava:${GUAVA_VERSION}"
    compile "org.apache.commons:commons-lang3:${COMMONS_LANG3_VERSION}"
 
    compile "org.springframework:spring-orm:${SPRING_VERSION}"
 
    compile "com.zaxxer:HikariCP-java6:${HIKARI_VERSION}"
    compile "org.postgresql:postgresql:${POSTGRESQL_JDBC_VERSION}"
    compile "org.hibernate:hibernate-core:${HIBERNATE_VERSION}"
}
 
task wrapper(type: Wrapper) { gradleVersion = '2.14' }
cs


이렇게 build.gradle을 작성한 후에



 Refresh gradle project를 이클립스에서 실행하거나

 Command창에서 gradlew eclipse를 실행하면


 외부 lib들을 다운로드해서 빌드해줍니다.





5. Spring-boot 설정하기


 


이번 프로젝트 초기 구조 입니다.


프로젝트 개발 설정을 위해 


config 패키지를 추가합니다.


이 패키지에는 Spring Boot 관련 설정들이 담깁니다.


Spring-boot는 복잡한 Spring-framework 설정들을 간단하게 할 수 있도록 도와주는 라이브러리입니다.



Comments