1. Related introduction
Gradle is an easy-to-use build tool. The reasons for using it are:
The amount of configuration-related dependency code is small, and there will not be too much xml like maven.
It is packaged, compiled, tested and released, and it is easy to use
Use custom tasks to complete the functions you want
2. Installation
Download address http://services.gradle.org/distributions/, Download the corresponding version you need. What I downloaded here is gradle-4.7-bin.zip. After downloading, unzip it to the directory you want, and then set the environment variables:
View in cmd mode, the following information appears Prove that the installation is successful:
Then we can configure gradle’s default warehouse address in the environment variable (not the same as maven):
3. Use in IED
1. IDEA
Use idea to create a web Gradle project
Then package and run the project:
Double-click war
After the packaging is completed, the war file will be in:
Then just put the war into the corresponding tomcat directory. I won’t explain it here.
2. Eclipse
You need to install the plug-in yourself in eclipse. The plug-in path is:
https://download.eclipse.org/buildship/updates/e46/releases/ 2.x/
4. Problem description
1. Explanation of build.gradle and settings.gradle
First, a project contains group, name, and version. settings.gradle is used to manage multiple projects, which contains the name of the project
In build.gradle, apply is the application plug-in, such as:
Here we use java and war plug-ins. Dependencies are used to declare which jars this project depends on
It is explained here Yes, we rely on junit's jar during the test compilation phase. These include compile (compile time) runtime (run time) testCompile (test compile time) testRuntime (test run time). Repositories is a warehouse. Gradle will search for jars in the warehouse in order from top to bottom
Here our default is a maven central warehouse, from the gradle source code We see that the address is like this
You can configure it here, where mavenLocal() means using the local maven warehouse; mavenCentral() uses the maven central warehouse. Use a fixed address, you can use Alibaba Cloud here
(maven {url 'http://maven.aliyun.com/nexus/content/groups/public/'})
The mirror download speed will be faster, and you can also use the company's internal private server address.
Additional, here is a spring boot gradle configuration file, which can be compared with the maven build
// buildscript 代码块中脚本优先执行 buildscript { // ext 用于定义动态属性 ext { springBootVersion = '1.5.2.RELEASE' } // 自定义 Thymeleaf 和 Thymeleaf Layout Dialect 的版本 ext['thymeleaf.version'] = '3.0.3.RELEASE' ext['thymeleaf-layout-dialect.version'] = '2.2.0' // 自定义 Hibernate 的版本 ext['hibernate.version'] = '5.2.8.Final' // 使用了 Maven 的中央仓库(你也可以指定其他仓库) repositories { //mavenCentral() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } } // 依赖关系 dependencies { // classpath 声明说明了在执行其余的脚本时,ClassLoader 可以使用这些依赖项 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } // 使用插件 apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' // 打包的类型为 jar,并指定了生成的打包的文件名称和版本 jar { baseName = 'springboot-test' version = '1.0.0' } // 指定编译 .java 文件的 JDK 版本 sourceCompatibility = 1.8 // 默认使用了 Maven 的中央仓库。这里改用自定义的镜像库 repositories { //mavenCentral() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } } // 依赖关系 dependencies { // 该依赖对于编译发行是必须的 compile('org.springframework.boot:spring-boot-starter-web') // 添加 Thymeleaf 的依赖 compile('org.springframework.boot:spring-boot-starter-thymeleaf') // 添加 Spring Security 依赖 compile('org.springframework.boot:spring-boot-starter-security') // 添加 Spring Boot 开发工具依赖 //compile("org.springframework.boot:spring-boot-devtools") // 添加 Spring Data JPA 的依赖 compile('org.springframework.boot:spring-boot-starter-data-jpa') // 添加 MySQL连接驱动 的依赖 compile('mysql:mysql-connector-java:6.0.5') // 添加 Thymeleaf Spring Security 依赖,与 Thymeleaf 版本一致都是 3.x compile('org.thymeleaf.extras:thymeleaf-extras-springsecurity4:3.0.2.RELEASE') // 添加 Apache Commons Lang 依赖 compile('org.apache.commons:commons-lang3:3.5') // 该依赖对于编译测试是必须的,默认包含编译产品依赖和编译时依 testCompile('org.springframework.boot:spring-boot-starter-test') }
The above is the detailed content of How to use Gradle to build java projects. For more information, please follow other related articles on the PHP Chinese website!

Javadevelopmentisnotentirelyplatform-independentduetoseveralfactors.1)JVMvariationsaffectperformanceandbehavioracrossdifferentOS.2)NativelibrariesviaJNIintroduceplatform-specificissues.3)Filepathsandsystempropertiesdifferbetweenplatforms.4)GUIapplica

Java code will have performance differences when running on different platforms. 1) The implementation and optimization strategies of JVM are different, such as OracleJDK and OpenJDK. 2) The characteristics of the operating system, such as memory management and thread scheduling, will also affect performance. 3) Performance can be improved by selecting the appropriate JVM, adjusting JVM parameters and code optimization.

Java'splatformindependencehaslimitationsincludingperformanceoverhead,versioncompatibilityissues,challengeswithnativelibraryintegration,platform-specificfeatures,andJVMinstallation/maintenance.Thesefactorscomplicatethe"writeonce,runanywhere"

Platformindependenceallowsprogramstorunonanyplatformwithoutmodification,whilecross-platformdevelopmentrequiressomeplatform-specificadjustments.Platformindependence,exemplifiedbyJava,enablesuniversalexecutionbutmaycompromiseperformance.Cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

Javaispopularforcross-platformdesktopapplicationsduetoits"WriteOnce,RunAnywhere"philosophy.1)ItusesbytecodethatrunsonanyJVM-equippedplatform.2)LibrarieslikeSwingandJavaFXhelpcreatenative-lookingUIs.3)Itsextensivestandardlibrarysupportscompr

Reasons for writing platform-specific code in Java include access to specific operating system features, interacting with specific hardware, and optimizing performance. 1) Use JNA or JNI to access the Windows registry; 2) Interact with Linux-specific hardware drivers through JNI; 3) Use Metal to optimize gaming performance on macOS through JNI. Nevertheless, writing platform-specific code can affect the portability of the code, increase complexity, and potentially pose performance overhead and security risks.

Java will further enhance platform independence through cloud-native applications, multi-platform deployment and cross-language interoperability. 1) Cloud native applications will use GraalVM and Quarkus to increase startup speed. 2) Java will be extended to embedded devices, mobile devices and quantum computers. 3) Through GraalVM, Java will seamlessly integrate with languages such as Python and JavaScript to enhance cross-language interoperability.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Dreamweaver CS6
Visual web development tools
