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

  • 相关阅读:
    帝国 标签模板 使用程序代码 去除html标记 并 截取字符串
    iis6 伪静态 iis配置方法 【图解】
    您来自的链接不存在 帝国CMS
    帝国cms Warning: Cannot modify header information headers already sent by...错误【解决方法】
    .fr域名注册 51元注册.fr域名
    帝国网站管理系统 恢复栏目目录 建立目录不成功!请检查目录权限 Godaddy Windows 主机
    星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败
    ASP.NET 自定义控件学习研究
    CSS层叠样式表之CSS解析机制的优先级
    ASP.NET程序员工作面试网络收藏夹
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/6616200.html
Copyright © 2011-2022 走看看