Split java out

This commit is contained in:
Aoran Zeng 2024-08-09 02:58:24 +08:00
parent 2219cd3a7d
commit 3d58b6dcac
No known key found for this signature in database
GPG Key ID: 8F8BA8488E10ED98
3 changed files with 105 additions and 93 deletions

View File

@ -141,17 +141,6 @@ pl_rust_sources[] = {
},
/**
* @time 2024-04-18
* @note
*/
pl_java_sources[] = {
{&Upstream, NULL},
{&Ali, "https://maven.aliyun.com/repository/public/"},
{&Huawei, "https://mirrors.huaweicloud.com/repository/maven/"},
{&Netease, "http://mirrors.163.com/maven/repository/maven-public/"} // 网易的24小时更新一次
},
/**
* @time 2023-09-10
@ -758,7 +747,7 @@ wr_tex_sources[] = {
def_sources_n(pl_rust);
def_sources_n(pl_java); def_sources_n(pl_clojure);
def_sources_n(pl_clojure);
def_sources_n(pl_dotnet); def_sources_n(pl_dart); def_sources_n(pl_haskell);
def_sources_n(pl_ocaml);
def_sources_n(pl_r); def_sources_n(pl_julia);

View File

@ -29,6 +29,7 @@
#include "recipe/lang/php.c"
#include "recipe/lang/lua.c"
#include "recipe/lang/go.c"
#include "recipe/lang/java.c"
void
@ -78,86 +79,6 @@ pl_dotnet_setsrc (char *option)
void
pl_java_check_cmd (bool *maven_exist, bool *gradle_exist)
{
*maven_exist = chsrc_check_program ("mvn");
*gradle_exist = chsrc_check_program ("gradle");
if (! *maven_exist && ! *gradle_exist)
{
chsrc_error ("maven 与 gradle 命令均未找到,请检查是否存在其一");
exit (Exit_UserCause);
}
}
char *
pl_java_find_maven_config ()
{
char *buf = xy_run ("mvn -v", 2, NULL);
char *maven_home = xy_str_delete_prefix (buf, "Maven home: ");
maven_home = xy_str_strip (maven_home);
char *maven_config = xy_uniform_path (xy_2strjoin (maven_home, "/conf/settings.xml"));
return maven_config;
}
void
pl_java_getsrc (char *option)
{
bool maven_exist, gradle_exist;
pl_java_check_cmd (&maven_exist, &gradle_exist);
char *maven_config = pl_java_find_maven_config ();
chsrc_note2 (xy_2strjoin ("请查看 ", maven_config));
}
/**
* Java https://developer.aliyun.com/mirror/maven
*/
void
pl_java_setsrc (char *option)
{
bool maven_exist, gradle_exist;
pl_java_check_cmd (&maven_exist, &gradle_exist);
SourceInfo source;
chsrc_yield_source (pl_java);
chsrc_confirm_source (&source);
if (maven_exist)
{
const char *file = xy_strjoin (7,
"<mirror>\n"
" <id>", source.mirror->code, "</id>\n"
" <mirrorOf>*</mirrorOf>\n"
" <name>", source.mirror->name, "</name>\n"
" <url>", source.url, "</url>\n"
"</mirror>");
char *maven_config = pl_java_find_maven_config ();
chsrc_note2 (xy_strjoin (3, "请在您的 maven 配置文件 ", maven_config, " 中添加:"));
puts (file);
}
if (gradle_exist)
{
if (maven_exist) puts ("");
const char* file = xy_strjoin (3,
"allprojects {\n"
" repositories {\n"
" maven { url '", source.url, "' }\n"
" mavenLocal()\n"
" mavenCentral()\n"
" }\n"
"}");
chsrc_note2 ("请在您的 build.gradle 中添加:");
puts (file);
}
chsrc_say_lastly (&source, ChsrcTypeManual);
}
void
pl_clojure_setsrc (char *option)
@ -1891,7 +1812,7 @@ wr_anaconda_setsrc (char *option)
/************************************** Begin Target Matrix ****************************************/
def_target(pl_rust); def_target(pl_java); def_target(pl_dart); def_target(pl_ocaml);
def_target(pl_rust); def_target(pl_dart); def_target(pl_ocaml);
def_target(pl_r); def_target(pl_julia);
def_target_noget (pl_clojure);
def_target_noget (pl_dotnet);

102
src/recipe/lang/java.c Normal file
View File

@ -0,0 +1,102 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* Contributors : Aoran Zeng <ccmywish@qq.com>
* Created on : <2023-09-30>
* Last modified : <2024-08-09>
* ------------------------------------------------------------*/
/**
* @time 2024-04-18
* @note
*/
static SourceInfo
pl_java_sources[] = {
{&Upstream, NULL},
{&Ali, "https://maven.aliyun.com/repository/public/"},
{&Huawei, "https://mirrors.huaweicloud.com/repository/maven/"},
{&Netease, "http://mirrors.163.com/maven/repository/maven-public/"} // 网易的24小时更新一次
};
def_sources_n(pl_java);
void
pl_java_check_cmd (bool *maven_exist, bool *gradle_exist)
{
*maven_exist = chsrc_check_program ("mvn");
*gradle_exist = chsrc_check_program ("gradle");
if (! *maven_exist && ! *gradle_exist)
{
chsrc_error ("maven 与 gradle 命令均未找到,请检查是否存在其一");
exit (Exit_UserCause);
}
}
char *
pl_java_find_maven_config ()
{
char *buf = xy_run ("mvn -v", 2, NULL);
char *maven_home = xy_str_delete_prefix (buf, "Maven home: ");
maven_home = xy_str_strip (maven_home);
char *maven_config = xy_uniform_path (xy_2strjoin (maven_home, "/conf/settings.xml"));
return maven_config;
}
void
pl_java_getsrc (char *option)
{
bool maven_exist, gradle_exist;
pl_java_check_cmd (&maven_exist, &gradle_exist);
char *maven_config = pl_java_find_maven_config ();
chsrc_note2 (xy_2strjoin ("请查看 ", maven_config));
}
/**
* Java https://developer.aliyun.com/mirror/maven
*/
void
pl_java_setsrc (char *option)
{
bool maven_exist, gradle_exist;
pl_java_check_cmd (&maven_exist, &gradle_exist);
SourceInfo source;
chsrc_yield_source (pl_java);
chsrc_confirm_source (&source);
if (maven_exist)
{
const char *file = xy_strjoin (7,
"<mirror>\n"
" <id>", source.mirror->code, "</id>\n"
" <mirrorOf>*</mirrorOf>\n"
" <name>", source.mirror->name, "</name>\n"
" <url>", source.url, "</url>\n"
"</mirror>");
char *maven_config = pl_java_find_maven_config ();
chsrc_note2 (xy_strjoin (3, "请在您的 maven 配置文件 ", maven_config, " 中添加:"));
puts (file);
}
if (gradle_exist)
{
if (maven_exist) puts ("");
const char* file = xy_strjoin (3,
"allprojects {\n"
" repositories {\n"
" maven { url '", source.url, "' }\n"
" mavenLocal()\n"
" mavenCentral()\n"
" }\n"
"}");
chsrc_note2 ("请在您的 build.gradle 中添加:");
puts (file);
}
chsrc_say_lastly (&source, ChsrcTypeManual);
}
def_target(pl_java);