zoukankan      html  css  js  c++  java
  • 使用Gradle自动创建Java项目结构

    D:N3verL4ndDesktopjava>tree
    卷 本地磁盘 的文件夹 PATH 列表
    卷序列号为 00000200 0006:08B0
    D:.
    ├─.gradle
    │  ├─3.4.1
    │  │  ├─file-changes
    │  │  └─taskHistory
    │  └─buildOutputCleanup
    ├─gradle
    │  └─wrapper
    └─src
        ├─main
        │  └─java
        └─test
            └─java
    
    D:N3verL4ndDesktopjava>


    通过使用:

    gradle init --type java-library

    我们可以快速建立一个java开发项目目录。


    src/main/java目录包含了项目的源代码。
    src/main/resources目录包含了项目的资源(如属性文件)。
    src/test/java目录包含了测试类。
    src/test/resources目录包含了测试资源。所有我们构建生成的文件都会在build目录下被创建,这个目录涵盖了以下的子目录
    classes目录包含编译过的.class文件。
    libs目录包含构建生成的jar或war文件。

    srcmainjava与src estjava生成的*.java文件可以删除。

    默认生成的build.gradle为:

    /*
     * This build file was generated by the Gradle 'init' task.
     *
     * This generated file contains a sample Java Library project to get you started.
     * For more details take a look at the Java Libraries chapter in the Gradle
     * user guide available at https://docs.gradle.org/3.4.1/userguide/java_library_plugin.html
     */
    
    // Apply the java-library plugin to add support for Java Library
    apply plugin: 'java-library'
    
    // In this section you declare where to find the dependencies of your project
    repositories {
        // Use jcenter for resolving your dependencies.
        // You can declare any Maven/Ivy/file repository here.
        jcenter()
    }
    
    dependencies {
        // This dependency is exported to consumers, that is to say found on their compile classpath.
        api 'org.apache.commons:commons-math3:3.6.1'
    
        // This dependency is used internally, and not exposed to consumers on their own compile classpath.
        implementation 'com.google.guava:guava:20.0'
    
        // Use JUnit test framework
        testImplementation 'junit:junit:4.12'
    } 

    我们可以对它做如下修改,来生成一个Hello World程序。

    apply plugin: 'java'
    
    jar {
    	manifest {
    		attributes 'Main-Class': 'aa.bb.cc.HelloWorld'
    	}
    }
    
    

    使用gradle tasks可以得到一个可运行任务及其描述的完整列表

    这是一个很好的方式,不需要阅读构建脚本,就能对你的项目进行大致的浏览

    gradle中几个常见的任务:

    assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。
    build任务会执行一个完整的项目构建。
    clean任务会删除构建目录。
    compileJava任务会编译程序中的源代码。

    我们编写个简单的HelloWorld程序:

    package aa.bb.cc;
    
    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello World!");
        }
    }


    D:N3verL4ndDesktopjavasrcmainjava>tree /f
    卷 本地磁盘 的文件夹 PATH 列表
    卷序列号为 00000200 0006:08B0
    D:.
    └─xiya
            HelloWorld.java
    如上,我们的*.java文件在java目录下的xiya子目录下,而*.java源文件是这样写的:package aa.bb.cc;

    生成的结构:

    D:N3verL4ndDesktopjavauild>tree /f
    卷 本地磁盘 的文件夹 PATH 列表
    卷序列号为 00000200 0006:08B0
    D:.
    ├─classes
    │  └─main
    │      └─aa
    │          └─bb
    │              └─cc
    │                      HelloWorld.class
    可见,srcmainjava文件夹下的目录结构只是为了对源文件分类。


    参考:

    https://docs.gradle.org/current/userguide/build_init_plugin.html

  • 相关阅读:
    hihoCoder 1392 War Chess 【模拟】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)
    HDU 5889 Barricade 【BFS+最小割 网络流】(2016 ACM/ICPC Asia Regional Qingdao Online)
    Codeforces 715B & 716D Complete The Graph 【最短路】 (Codeforces Round #372 (Div. 2))
    Codeforces 715A & 716C Plus and Square Root【数学规律】 (Codeforces Round #372 (Div. 2))
    Codeforces 716A Crazy Computer 【模拟】 (Codeforces Round #372 (Div. 2))
    Codeforces 716B Complete the Word【模拟】 (Codeforces Round #372 (Div. 2))
    HDU 5875 Function 【倍增】 (2016 ACM/ICPC Asia Regional Dalian Online)
    axios 简介与安装
    serializer 功能
    APIview 整理
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616200.html
Copyright © 2011-2022 走看看