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

  • 相关阅读:
    最近几天在winform系统界面操作,流程操作上的经验总结.
    人生路痛苦中......
    Contact List
    奥巴马当选
    在会计电算化软件中设计凭证数据库的几种方法转摘(粗浅)
    修改ListItem时出现Error: Invalid data has been used to update the list item. The field you are trying to update may be read only.
    MOSS误删网站集后,如何还原?
    SharePoint2007 管理中心TimerJob”计时器作业定义”页面报错
    SharePoint 2010 常用技巧及方法总结
    利用RunWithElevatedPrivileges模拟管理员权限时慎用SPContext
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616200.html
Copyright © 2011-2022 走看看