トゥーデル
1. Build
ビルとは、以下の動作を実行する作業を指す.
必要なライブラリをダウンロードして*classpathに追加
ソースコードのコンパイル
テストの実行
パッケージ化されたコード(jar、war、zipなど)
カプセル化されたファイルをコンポーネントと呼び、サーバまたはリポジトリに配置します.
2. Build Tool
手動で構築して実行するプロセスは本当に面倒です.このプロセスを自動化するために、構築ツールを設計しました.
ex) Ant, Maven, Gradle
Javaでは以前はMavenが広く使われていましたが、現在では多くの言語をサポートするGradleが登場し、最近はGradleが広く使われています
構築ツールは、プロジェクトに必要なxml、properties、jarなどのファイルを識別し、構築し、実行可能なアプリケーションとしてコンパイルおよびテストします.
プロジェクト情報管理、テスト構築、導入などの作業も可能
3. Gradle
溝を使用した自動化システムの構築
ケルピー:ダイナミックオブジェクト向けプログラミング言語、JavaにPython、Rubyなどの特性を追加
https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EA%B7%B8%EB%A3%A8%EB%B9%84
最近はKotlinもサポートしています
Gradleの公式ドキュメントには、Gradleの特徴が記載されています.
https://docs.gradle.org/current/userguide/what_is_gradle.html
3-1. 設定
$ sdk install gradle
$ brew install gradle
3-2. 実行
3-2-1. 階層アイテムの作成
$ gradle init # gradle로 프로젝트 생성. 몇가지 설정들을 선택해주면 된다
$ tree # 기본 gradle 생성 자바 프로젝트는 다음과 같은 구조를 가진다
├── app # 기본 프로젝트 명
│ ├── build.gradle # 빌드 스크립트를 작성하는 곳
│ └── src # 소스 코드
│ ├── main # 프로그램 코드
│ │ ├── java
│ │ │ └── com
│ │ │ └── programmers
│ │ │ └── java
│ │ │ └── App.java
│ │ └── resources
│ └── test # 테스트 코드
│ ├── java
│ │ └── com
│ │ └── programmers
│ │ └── java
│ │ └── AppTest.java
│ └── resources
├── gradle # gradle 실행을 위한 런타임
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle # gradle 설정 파일
3-2-2. 構築と実行
$ gradle build
Starting a Gradle Daemon (subsequent builds will be faster)
BUILD SUCCESSFUL in 5s
7 actionable tasks: 7 up-to-date
$ gradle run
> Task :app:run
Hello World!
BUILD SUCCESSFUL in 725ms
2 actionable tasks: 1 executed, 1 up-to-date
3-2-3. タスク#タスク#
(...생략...)
tasks.named('test') {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}
gradle init
でアプリケーションが選択されている場合、プラグインはアプリケーションを追加し、次のタスクを自動的に登録します:$ gradle tasks
> Task :tasks
------------------------------------------------------------
Tasks runnable from root project 'HelloWorld'
------------------------------------------------------------
Application tasks
-----------------
run - Runs this project as a JVM application
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that depend on it.
buildNeeded - Assembles and tests this project and all projects it depends on.
classes - Assembles main classes.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the main classes.
testClasses - Assembles test classes.
Build Setup tasks
-----------------
init - Initializes a new Gradle build.
wrapper - Generates Gradle wrapper files.
Distribution tasks
------------------
assembleDist - Assembles the main distributions
distTar - Bundles the project as a distribution.
distZip - Bundles the project as a distribution.
installDist - Installs the project as a distribution as-is.
Documentation tasks
-------------------
javadoc - Generates Javadoc API documentation for the main source code.
Help tasks
----------
buildEnvironment - Displays all buildscript dependencies declared in root project 'HelloWorld'.
dependencies - Displays all dependencies declared in root project 'HelloWorld'.
dependencyInsight - Displays the insight into a specific dependency in root project 'HelloWorld'.
help - Displays a help message.
javaToolchains - Displays the detected java toolchains.
outgoingVariants - Displays the outgoing variants of root project 'HelloWorld'.
projects - Displays the sub-projects of root project 'HelloWorld'.
properties - Displays the properties of root project 'HelloWorld'.
tasks - Displays the tasks runnable from root project 'HelloWorld' (some of the displayed tasks may belong to subprojects).
Verification tasks
------------------
check - Runs all checks.
test - Runs the unit tests.
To see all tasks and more detail, run gradle tasks --all
To see more detail about a task, run gradle help --task <task>
3-2-4. Injellij IDEAからのGradle
4.Gradleによる外部依存の管理
Pythonでpipを使用して外部ライブラリをインストールするように、Gradleで構築します.gradeのリポジトリと依存項目の設定でインストールできます.
次のコンストラクション.Gradleの一部では、MavenCentral Repoの外部依存項目がいくつか導入されます.
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
implementation 'com.github.javafaker:javafaker:1.0.2'
}
import com.github.javafaker.Faker;
public class Main {
public static void main(String[] args) {
// 데모 등을 위해 다양한 랜덤 값을 생성하는 클래스
Faker faker = new Faker();
// 직함 생성
String title = faker.name().title();
System.out.println(title);
}
}
サポートされているハウジング
残念ながら私は今fishをサポートしていません😢 POSIX対応のShellのみがサポートされているようですが、後でgradeを直接実行する作業がたくさんある場合はzshをインストールする必要があります.
Reference
この問題について(トゥーデル), 我々は、より多くの情報をここで見つけました
https://velog.io/@sangmin7648/Gradle-이란
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(トゥーデル), 我々は、より多くの情報をここで見つけました https://velog.io/@sangmin7648/Gradle-이란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol