4.netty环境搭建 以及 gradle 配置 - mrwang1992/netty_student GitHub Wiki

不要陷入细节,先运行起来再说

netty 下载包里有两种 一种分模块的,一种是all 所有的集合

打包工具

maven

gradle(比较重要,线下可以多看看)

  • https://gradle.org/

  • 更加简洁以及灵活

  • 对比与 maven pom.xml 中的配置,gradle 更加强大灵活(可编程使用领域特定语言(DSL)) 更加简洁,

  • gradle 是 google 官方推荐的构建工具,目前看来是趋势

  • 下载,配置环境就可以使用

  • https://gradle.org/install/

设置

build.gradle 文件介绍
plugins { // 插件 这里用到java
    id 'java'
}

group 'wang.huaiting'
version '1.0'

sourceCompatibility = 1.8 // 设置为环境支持的jdk最高的就可以
targetCompatibility = 1.8  // 设置为环境支持的jdk最高的就可以

repositories {   # 仓库
    mavenCentral() # 中央库
}

dependencies {  # 描述项目依赖
    testCompile group: 'junit', name: 'junit', version: '4.12'  # 测试编译
    testCompile (    // 也可以这么写 
            'junit:junit:4.12'
    )
}

查找组件坐标

配置国内源 (全局使用)

添加 vim ~/.gradle/init.gradle 文件
内容写入  
allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
        def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
                url ALIYUN_REPOSITORY_URL
            	url ALIYUN_JCENTER_URL
        }
    }
}

添加 netty 支持

  • 课程版本 : "io.netty:netty-all:4.1.10.Final"

使用 尽量使用命令行 少用工具

  • gradle clean build

约定优先于配置,目录如下图组织 (注意main/java|resources 路径)

.
├── build.gradle
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources