build: derive Maven endpoints from an overridable base #6
Closed
layue13
wants to merge 2 commits from
tdlm/maven-endpoint-split into main
pull from: tdlm/maven-endpoint-split
merge into: TDLM:main
TDLM:main
TDLM:chore/proguard
TDLM:perf/reuse-block-lookups
TDLM:perf/creative-node-self-heal
TDLM:perf/hyper-node-creator
TDLM:perf/creative-node-registry
TDLM:perf/singularity-queries
TDLM:perf/tank-crops-lookups
TDLM:fix/guifactory
TDLM:build/stratum-bump
No Reviewers
Labels
Clear labels
area/build
area/client
area/compatibility
area/config
area/integration
area/lifecycle
area/lighting
area/network
area/performance
area/persistence
area/release
area/render
area/security
area/server
area/test
origin/scan
origin/upstream-sync
构建系统、编译与 CI。
仅客户端(渲染除外)
跨模组、跨版本或外部接口兼容行为。
默认配置、配方、日志噪音
跨仓库 API、工具链或功能联动问题。
实体、区块、世界对象的加载、卸载、持久化与资源所有权。
光照更新、传播队列及其与区块卸载、渲染路径的行为。
网络包与同步
运行时 CPU、内存、分配、网络或存盘开销问题。
NBT、存档、实体/区块加载卸载与生命周期
版本、Maven 坐标、制品发布与发布链路。
渲染、光照、着色器
权限边界、服务端校验、反序列化或其他安全风险。
仅服务端 tick/逻辑
测试实现、覆盖与验证设施
组织内部审计扫描产出
日扫上游 GTNH 发现的待吸收改动
priority
p0
最高处理优先级:广泛崩溃、数据或权限风险,或关键发布通道被阻断且无绕行方案。
priority
p1
高处理优先级:核心功能明显受损或影响范围较大,近期安排处理。
priority
p2
常规处理优先级:影响范围有限且有可行绕行,纳入计划处理。
priority
p3
低处理优先级:影响轻微或仅涉及边界场景,有空再处理。
resolution
duplicate
与另一 issue 重复
resolution
fixed
已有合并的 PR/commit 修复
resolution
invalid
复核后不成立/无法复现/无需处理
resolution
recorded
记录类 issue,记录完成即关闭
resolution
wontfix
评估后决定不修
type
audit
扫描、覆盖普查、设计评估等记录类,本身不是待修缺陷
type
chore
构建、CI、发布、依赖、版本、上游同步、清理
type
defect
功能错误、崩溃、数据错乱(不含性能与安全专项)
type
feature
新功能或联动,当前行为不算故障
type
perf
CPU/内存/分配/网络/存盘开销问题
type
question
待答复/待决策,尚未形成实现任务
type
security
权限越界、复制/刷物品、绕过领地、服务端校验缺失、反序列化
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: TDLM/thaumicadditions#6
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
Resolution and publication were both pointed at one hardcoded registry URL. Against Nexus 3
that single address cannot serve both roles:
maven-publicgroup, which is read-only and answers403toany write.
exclusive version policies: a
SNAPSHOTarriving atmaven-releasesis rejected with400, and a release arriving atmaven-snapshotslikewise.So the publish target has to follow the artifact version, not a fixed variable.
What changed
gradle.propertiesmavenPublishUrlnow carries the organisation default base instead of a hardcodedregistry path. It stays a plain Gradle property so it can be overridden (see below).
build.gradle$base/repository/maven-public$base/repository/maven-releasesormaven-snapshots, by version.../maven-releases,.../maven-publicor a bare host all normalise to the same base. A mis-filled repositoryname therefore cannot send a snapshot to the release repo.
MAVEN_URL/ credential blocks are replaced;MAVEN_URLno longer appears.Runner override - no bespoke variable
mavenPublishUrlis an ordinary Gradle property, so Gradle's own mechanism covers the"runner on a slow network uses the accelerator" case:
One variable moves both endpoints; the repository itself is untouched. Precedence is
simply: command line / env >
gradle.properties.Deliberately no
TDLM_MAVEN_*variables were introduced - a separate resolve or publishoverride can only be misconfigured, and a fixed publish URL is the bug this change removes.
Verification
Verified with the real GTNH plugin (2.0.29) on Gradle 9.4 / JDK 25, using this repo's actual
patched build script (a local
file:///sentinel target, no external service touched):maven.nest.potatolab.uk:8443/repository/maven-public.../repository/maven-releasescdn.example.org/repository/maven-publiccdn.example.org/repository/maven-releasesOnly the host:port of the injected value survives; whatever repository path is written there
is discarded and recomputed. The accelerator therefore has to expose the same
/repository/<name>paths as Nexus - a bare DNS alias or any proxy that passes that paththrough unchanged works, a proxy that demands its own path prefix does not.
Also confirmed on the plugin itself: a publishing repository only exists when
MAVEN_USER/MAVEN_PASSWORDare set, and-PmavenPublishUrl=/ORG_GRADLE_PROJECT_mavenPublishUrlreally do override the file value.Pull request closed