{"id":19457718,"url":"https://github.com/luncliff/eclair","last_synced_at":"2025-04-25T05:31:24.272Z","repository":{"id":55990803,"uuid":"223214835","full_name":"luncliff/Eclair","owner":"luncliff","description":"Fast setup of JNI + Gradle project for (Korean) C++ developers","archived":true,"fork":false,"pushed_at":"2020-12-02T15:17:51.000Z","size":54,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-19T00:52:04.139Z","etag":null,"topics":["cpp","example-project","gradle","jni","jni-sample"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luncliff.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-21T16:17:19.000Z","updated_at":"2024-05-31T14:40:28.000Z","dependencies_parsed_at":"2022-08-15T11:00:24.352Z","dependency_job_id":null,"html_url":"https://github.com/luncliff/Eclair","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FEclair","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FEclair/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FEclair/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncliff%2FEclair/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luncliff","download_url":"https://codeload.github.com/luncliff/Eclair/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250760805,"owners_count":21482871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","example-project","gradle","jni","jni-sample"],"created_at":"2024-11-10T17:23:36.667Z","updated_at":"2025-04-25T05:31:23.859Z","avatar_url":"https://github.com/luncliff.png","language":"C++","readme":"# Eclair\n\n[![Build Status](https://dev.azure.com/luncliff/personal/_apis/build/status/luncliff.Eclair?branchName=master)](https://dev.azure.com/luncliff/personal/_build/latest?definitionId=38\u0026branchName=master) [![](https://img.shields.io/badge/Gradle-6.0%2B-%2302303A)](https://gradle.org)\n\n[Gradle](https://gradle.org/features/)만으로 JNI 모듈을 빌드/테스트/패키징 하는 템플릿 프로젝트\n\n### References\n\n* 책\n    * Gradle 철저 입문 - 김완섭 옮김, 길벗 출판사\n    * 안드로이드의 모든 것 NDK - 고현철,전호철 지음, 한빛미디어\n* Gradle 공식 문서, 예제\n    * **[Introducing the new C++ plugins](https://blog.gradle.org/introducing-the-new-cpp-plugins)**\n    * [Gradle Build Language Reference](https://docs.gradle.org/6.0.1/dsl/index.html)\n    * [Building C++ Projects](https://docs.gradle.org/6.0.1/userguide/building_cpp_projects.html)\n    * [Building and Testing C++ Libraries](https://guides.gradle.org/building-cpp-libraries/)\n    * [GitHub: Gradle Native Project Samples](https://github.com/gradle/native-samples)\n* Apache Maven\n    * [Introduction to the Standard Directory Layout](http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)\n* Java Native Interface(JNI)\n    * [Specification](https://docs.oracle.com/en/java/javase/11/docs/specs/jni/index.html)\n* JUnit5\n    * [JUnit 5 User Guide](https://junit.org/junit5/docs/current/user-guide/)\n    * [IBM Developer Tutorial: The JUnit 5 Jupiter API](https://developer.ibm.com/tutorials/j-introducing-junit5-part1-jupiter-api/)\n\n### Code Organization\n\n기본적으로 Gradle로 빌드되는 Sub-project로 가정하며, [Apache Maven의 구성 방법](http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)을 기본으로 하되,  \n각 단계를 진행하며 달라진 부분을 눈치채고 변경할 수 있도록 구성하였습니다.\n\n## How To\n\nJava, Gradle을 설치한 후, [docs](./docs)에서 단계적으로 따라할 수 있도록 작성되었습니다.\n\n### Setup\n\n* JDK 11+\n* Gradle 6.0+\n\n#### Windows\n\n윈도우 환경에서는 [Chocolatey](https://chocolatey.org/)를 사용\n\n```ps1\nchoco install openjdk\nchoco install gradle\n```\n\n설치 이후 Gradle에서 요구하는 환경변수 `JAVA_HOME` 및 일반적으로 Java 툴킷에 필요한 `JDK_HOME`을 설정. (빌드에서는 `JAVA_HOME`만을 사용)\n\n```ps1\nWrite-Output $env:JAVA_HOME\n# C:\\Program Files\\OpenJDK\\jdk-13.0.1\nWrite-Output $env:JDK_HOME\n# C:\\Program Files\\OpenJDK\\jdk-13.0.1\n```\n\n#### UNIX-like\n\n[SDKMan](https://sdkman.io/)을 사용. 아래의 내용은 프로젝트 목적을 고려해 [설치 과정](https://sdkman.io/install)을 요약한 것.\n\n```console\nuser@host:~$ sudo apt install -y -qq unzip zip curl\nuser@host:~$ curl -s \"https://get.sdkman.io\" | bash\nuser@host:~$ source \"/home/luncliff/.sdkman/bin/sdkman-init.sh\"\n```\n\nConsole 재시작.\n\n```console\nuser@host:~$ sdk version\n...\nSDKMAN 5.7.4+362\n```\n\nJDK 설치. 설치 후, `JDK_HOME`, `JAVA_HOME` 환경변수 설정필요. 두 값은 같은 값을 사용하며, 모두 `javac` 프로그램의 위치를 사용해 획득 가능.\n\n```console\nuser@host:~$ sdk install java 13.0.1-open\n...\nuser@host:~$ javac --version\njavac 13.0.1\nuser@host:~$ export JDK_HOME=\"$(dirname $(which javac))\"\nuser@host:~$ export JAVA_HOME=${JDK_HOME}\n```\n\n이후 Gradle 설치 및 버전 확인\n\n```console\nuser@host:~$ sdk install gradle 6.0.1\n...\nuser@host:~$ gradle --version\n\n------------------------------------------------------------\nGradle 6.0.1\n------------------------------------------------------------\n\nBuild time:   2019-11-18 20:25:01 UTC\nRevision:     fad121066a68c4701acd362daf4287a7c309a0f5\n...\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncliff%2Feclair","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluncliff%2Feclair","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncliff%2Feclair/lists"}