Lss233’s.Mirror();
0x00 写在前面
记得最开始使用Maven的时候,基本上大部分时间都花在寻找依赖和下载依赖上。
许多API的作者也都是把自己的工件放在自己的maven仓库上,
如果你使用Maven或者Gradle,那么你不仅要在pom.xml中写dependency,还要写一个repository。
有些仓库在国内访问还很慢、甚至无法打开,这大大降低了开发效率。
如果你现在正为此苦恼的话,那么试试我搭建的源吧! (事实证明本镜像也可以帮助到国外开发者。)
提示:如果使用HTTPS访问,本镜像源需要的最低Java版本:
- Java 7 >= 7u111
- Java 8 >= 8u101
更高的Java版本暂时没有收到不支持的反馈。其他程序的兼容性问题未知,如无法使用,望请告知,谢谢!
0x01 介绍!
源地址:
https://lss233.littleservice.cn/repositories/minecraft
备用地址1:https://crystal.app.lss233.com/repositories/minecraft
备用地址2:http://nossl.lss233.com/artifactory/minecraft
这个源镜像了以下内容:
- spigot的snapshots (主要包含了spigot-api, bukkit-api)
- spongepowered (主要包含了spongeapi, spongecommon 以及其他开发sponge插件可能用到的工件)
- forge(镜像了 maven )
- fabric(主要包含farbic)
- herocraft-repo(主要包含了vault-api, heroes, Residence等工件)
- placeholderapi-repo(主要包含了PlaceholderAPI)
- sk89q-repo (主要包含了worldedit, worldguard, craftbook,dynmap-api 等工件 )
- dmulloy2-snapshots(主要包含了ProtocolLib等工件)
- ess3-repo (主要包含了Essentials插件的一些工件)
- dakanilabs-repo (主要包含了SQLibrary, PlayerPoints等一些工件)
- kk-central (主要包含了KCauldron等一些工件)
- Phoenix(主要包含了PhoenixAPI)
- destroystokyo-repo(主要包含paper-api, paperclip, waterfall等工件)
- lex-snapshots(主要包含了NeptuneLib)
- sonatype(主要包含了bungeecord-api等一大堆工件)
- codemc(主要包含了craftbukkit、spigot服务端)
- nukkit (主要包含了nukkit, nukkit-parent)
- libraries.minecraft.net (可以用于加速Minecraft启动器/Forge调试环境的下载)
- Gradle Distributions (可以用于加速Gradle Wrapper的下载,具体见下)
0x02 使用方法
虽然本镜像为Maven服务器,但使用的方式并没有限制。
下面介绍几种常见的使用情景.
1. 对于使用Maven进行开发的小伙伴
打开pom.xml ,在<repositories> ... </repositories>
代码块中加入:
<repository>
<id> lss233-minecraft </id>
<name> Lss233's Minecraft Repository </name>
<url>http://lss233.littleservice.cn/repositories/minecraft</url>
</repository>
然后就可以把其他已经在本仓库中的 <repository> ... </repository>
删除啦。
2. Gradle Wrapper加速
通常首次使用 gradlew 的时候总会从Gradle官网缓慢地下载gradle.
本人对此也提供了一个简单的镜像。
加速方法:
打开项目中的 gradle/wrapper/gradle-wrapper.properties
文件,
将 services.gradle.org/distributions
替换为 lss233.littleservice.cn/repositories/gradle-dist
即可。
3. 对于使用Gradle进行Forge Mod开发的小伙伴
把build.gradle
里:
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
替换成
maven {
name = "forge"
url = "http://lss233.littleservice.cn/repositories/minecraft"
}
就可以提升下载速度啦,还能避免下载失败的问题呢。
3.1 高版本MDK
如果使用高版本的MDK,可能还会遇到 jcenter
无法访问的现象。
解决方法:
由于仓库中已经包含JCenter,您可以直接将build.gradle
中的 jcenter()
删除。
3.2 完整版的build.gradle参考
1.12.2
buildscript {
repositories {
jcenter()
maven { url = "https://lss233.littleservice.cn/repositories/minecraft" }
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
}
}
apply plugin: 'net.minecraftforge.gradle.forge'
version = "1.0"
group= "com.yourname" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"
sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
compileJava {
sourceCompatibility = targetCompatibility = '1.8'
}
minecraft {
version = "1.12.2-14.23.5.2808"
runDir = "run"
// the mappings can be changed at any time, and must be in the following format.
// snapshot_YYYYMMDD snapshot are built nightly.
// stable_# stables are built at the discretion of the MCP team.
// Use non-default mappings at your own risk. they may not always work.
// simply re-run your setup task after changing the mappings to update your workspace.
mappings = "snapshot_20171003"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}
dependencies {
// you may put jars on which you depend on in ./libs
// or you may define them like so..
//compile "some.group:artifact:version:classifier"
//compile "some.group:artifact:version"
// real examples
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
//compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
// the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
//provided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
// the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided,
// except that these dependencies get remapped to your current MCP mappings
//deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev'
//deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
// for more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
}
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else except the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
1.7.10:
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven {
url = "https://lss233.littleservice.cn/repositories/minecraft"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
apply plugin: 'forge'
version = "1.0"
group= "com.yourname" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"
minecraft {
version = "1.7.10-10.13.4.1558-1.7.10"
runDir = "eclipse"
}
dependencies {
// you may put jars on which you depend on in ./libs
// or you may define them like so..
//compile "some.group:artifact:version:classifier"
//compile "some.group:artifact:version"
// real examples
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
//compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
// for more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
compile project(':PokeMarketCommon')
}
processResources
{
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
3.3 加速MCP、Assets等调试环境资源的下载
ForgeGradle对这些资源的下载地址是写死在代码中的。
然而,ForgeGradle没有打算对咱大陆开发者的网络情况提供帮助(见issue#558)。
你可以考虑使用FGOW,
或者在遵守ForgeGradle的开源协议情况下,
修改ForgeGradle的相关代码并编译一份仅供自己使用的Gradle插件来解决这个问题。
FGOW参考配置(使用bmclapi下载游戏资源):
BMCLAPI2 - Lss233’s.Mirror()
repos {
mcJsonUrl = "http://bmclapi2.bangbang93.com/versions/{MC_VERSION}/{MC_VERSION}.json"mcClientUrl = "http://bmclapi2.bangbang93.com/versions/{MC_VERSION}/{MC_VERSION}.jar";mcServerUrl = "http://bmclapi2.bangbang93.com/versions/{MC_VERSION}/minecraft_server.{MC_VERSION}.jar";;assestIndexUrl = "http://bmclapi2.bangbang93.com/indexes/{ASSET_INDEX}.json";assestUrl = "http://bmclapi2.bangbang93.com/assets"mcpUrl = "http://lss233.com/artifactory/repositories/minecraft/fernflower-fix-1.0.zip"}
4. 对于使用Gradle进行插件开发的小伙伴
在build.gradle
里的 repositories { .... }
里面加入一行:
maven {
url 'http://lss233.littleservice.cn/repositories/minecraft/'
}
5. 对于啥都不用的小伙伴
你可以用浏览器直接打开本源的网址,自行寻找你想要的依赖。
0x03 更新日志&更多使用介绍
2018年8月27日: 增加了对libraries.minecraft.net的镜像。详情: 13#
2018年9月22日: 加入了spigot和craftbukkit服务端核心。详情/使用方法: 22#
2019年2月04日: 增加了对Gradle程序的镜像。详情/使用方法: 29#
如果您有什么需要补充的仓库,或者想要提交自己的工件,也可以告诉我喔。
另外,如果出现 504 Gateway Time-out 的情况,应该是不会影响你的构建程序自动下载文件的。
如果本仓库无法正常使用,请提醒我,我会尽快修复。
本人所在QQ群:495882048
0x04 写在后面
本人是没有稳定收入的学生,维护这个镜像服务需要不小的开销。如果这个东西对您有帮助、想支持我继续下去,可以了解一下我在爱发电的主页喔~
友情赞助: LittleSkin.cn