From ee0ff6ae3ceb14ca0abb8d3c25b08aee8364d7c5 Mon Sep 17 00:00:00 2001
From: fybug <1006291762@qq.com>
Date: Sun, 8 Jun 2025 11:07:08 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=8F=90=E5=8F=96=E4=BE=9D=E8=B5=96?=
=?UTF-8?q?=E5=B9=B6=E4=BF=AE=E6=94=B9=E8=AF=B4=E6=98=8E=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 15 ++--
build.gradle | 38 +++++++--
jar/PDConcurrent.jar | Bin 0 -> 22361 bytes
jar/PDConcurrent_all.jar | Bin 0 -> 43921 bytes
jar/PDConcurrent_bin.jar | Bin 27050 -> 24260 bytes
jar/PDConcurrent_sources.jar | Bin 23648 -> 20997 bytes
lib/PDUtilFunctionExpand_bin.jar | Bin 0 -> 2573 bytes
.../nulll/pdconcurrent/fun/package-info.java | 8 --
.../nulll/pdconcurrent/fun/tryConsumer.java | 50 ------------
.../nulll/pdconcurrent/fun/tryFunction.java | 41 ----------
.../nulll/pdconcurrent/fun/tryRunnable.java | 75 ------------------
.../nulll/pdconcurrent/fun/trySupplier.java | 42 ----------
.../nulll/pdconcurrent/i/AbstractSyLock.java | 32 ++++----
.../java/fybug/nulll/pdconcurrent/i/Lock.java | 23 +++---
.../fybug/nulll/pdconcurrent/i/ReadLock.java | 13 +--
.../fybug/nulll/pdconcurrent/i/TryLock.java | 24 +++---
.../nulll/pdconcurrent/i/TryReadLock.java | 15 ++--
.../nulll/pdconcurrent/i/TryWriteLock.java | 15 ++--
.../fybug/nulll/pdconcurrent/i/WriteLock.java | 13 +--
.../pdconcurrent/i/simple/LockSimple.java | 8 +-
.../pdconcurrent/i/simple/ReadLockSimple.java | 8 +-
.../pdconcurrent/i/simple/TryLockSimple.java | 8 +-
.../i/simple/TryReadLockSimple.java | 8 +-
.../i/simple/TryWriteLockSimple.java | 8 +-
.../i/simple/WriteLockSimple.java | 8 +-
.../nulll/pdconcurrent/lock/ObjLock.java | 28 ++++---
.../nulll/pdconcurrent/package-info.java | 3 +-
27 files changed, 154 insertions(+), 329 deletions(-)
create mode 100644 jar/PDConcurrent.jar
create mode 100644 jar/PDConcurrent_all.jar
create mode 100644 lib/PDUtilFunctionExpand_bin.jar
delete mode 100644 src/main/java/fybug/nulll/pdconcurrent/fun/package-info.java
delete mode 100644 src/main/java/fybug/nulll/pdconcurrent/fun/tryConsumer.java
delete mode 100644 src/main/java/fybug/nulll/pdconcurrent/fun/tryFunction.java
delete mode 100644 src/main/java/fybug/nulll/pdconcurrent/fun/tryRunnable.java
delete mode 100644 src/main/java/fybug/nulll/pdconcurrent/fun/trySupplier.java
diff --git a/README.md b/README.md
index 4f957a7..e887932 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,4 @@
-
-
# PDConcurrent
@@ -9,10 +7,6 @@


-[//]: # (-- [Java Doc](https://apidoc.gitee.com/fybug/PDConcurrent) --)
-
-[//]: # (-- [项目主页](https://fybug.gitee.io/projectsby/PDConcurrent.html) --)
-
-------------------------------------------------------------------------------
## 简介
@@ -125,12 +119,19 @@ void main(String[] args) {
请导入其 `jar` 文件,文件在 **发行版** 或项目的 **jar** 文件夹下可以找到
-> PDConcurrent_bin.jar 为编译包
+> PDConcurrent.jar 为不包含依赖库的包
+>
+> PDConcurrent_bin.jar 为包含了依赖库的包
+>
+> PDConcurrent_all.jar 为包含了依赖库与源码的包
>
> PDConcurrent_sources.jar 为源码包
**发行版中可以看到全部版本
项目下的 jar 文件夹是当前最新的每夜版**
+依赖的同系列项目
+- [PDConcurrent](https://github.com/fybug/PDUtilFunctionExpand)
+
可通过 **WIKI** 或者 **doc文档** 深入学习本工具
## 分支说明
diff --git a/build.gradle b/build.gradle
index 0a57b75..418869b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ tasks.withType(JavaCompile).configureEach {
}
group 'fybug.nulll'
-version = '0.1.3'
+version = '0.1.4'
java {
toolchain {
@@ -82,15 +82,41 @@ tasks.withType(Jar).configureEach {
}
/** 编译包 */
-tasks.register('PDConcurrent_bin', Jar) {
+tasks.register('build_by', Jar) {
+ archiveFileName = 'PDConcurrent.jar'
+ archiveClassifier = 'bin'
+ // 打包编译输出
+ from sourceSets.main.output
+}
+
+/** 编译包 */
+tasks.register('build_bin', Jar) {
archiveFileName = 'PDConcurrent_bin.jar'
archiveClassifier = 'bin'
// 打包编译输出
from sourceSets.main.output
+ from {
+ // implementation 相关的引入解压并打包入新的jar中
+ configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+ }
+}
+
+/** 源码包 */
+tasks.register('build_all', Jar) {
+ archiveFileName = 'PDConcurrent_all.jar'
+ archiveClassifier = 'all'
+ // 打包编译输出
+ from sourceSets.main.output
+ // 打包源码
+ from sourceSets.main.allSource
+ from {
+ // implementation 相关的引入解压并打包入新的jar中
+ configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
+ }
}
/** 源码包 */
-tasks.register('PDConcurrent_sources', Jar) {
+tasks.register('build_sources', Jar) {
archiveFileName = 'PDConcurrent_sources.jar'
archiveClassifier = 'sources'
// 打包源码
@@ -98,6 +124,8 @@ tasks.register('PDConcurrent_sources', Jar) {
}
tasks.register('release') {
- dependsOn PDConcurrent_bin
- dependsOn PDConcurrent_sources
+ dependsOn build_by
+ dependsOn build_all
+ dependsOn build_bin
+ dependsOn build_sources
}
diff --git a/jar/PDConcurrent.jar b/jar/PDConcurrent.jar
new file mode 100644
index 0000000000000000000000000000000000000000..8b170fceae9723c87638b06df6644f31a4528a40
GIT binary patch
literal 22361
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
Yw@(XG@V7Szu`Oa-I_X&rJca@JAN8icTL1t6
literal 0
HcmV?d00001
diff --git a/jar/PDConcurrent_all.jar b/jar/PDConcurrent_all.jar
new file mode 100644
index 0000000000000000000000000000000000000000..a70931962acc8576f6760c3a041a98eebaccc045
GIT binary patch
literal 43921
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