java - 如何在 Maven 插件之外加载 org.apache.maven.settings.Settings?

标签 java maven

我需要从 Maven 插件外部访问 settings.xml。如何实例化与用户的settings.xml 相对应的org.apache.maven.settings.Settings

最佳答案

借用Fitnesse Maven Classpath plugin cannot resolve remote dependencies :

/**
 * @return the Maven settings
 * @throws SettingsBuildingException if the file cannot be loaded
 */
private Settings getMavenSettings() throws SettingsBuildingException 
{
    String userHome = System.getProperty("user.home");
    File userMavenConfigurationHome = new File(userHome, ".m2");
    String envM2Home = System.getenv("M2_HOME");
    File DEFAULT_USER_SETTINGS_FILE = new File(userMavenConfigurationHome, "settings.xml");
    File DEFAULT_GLOBAL_SETTINGS_FILE = new File(System.getProperty("maven.home", envM2Home != null ? envM2Home : ""),
        "conf/settings.xml");
    SettingsBuildingRequest settingsBuildingRequest = new DefaultSettingsBuildingRequest();
    settingsBuildingRequest.setSystemProperties(System.getProperties());
    settingsBuildingRequest.setUserSettingsFile(DEFAULT_USER_SETTINGS_FILE);
    settingsBuildingRequest.setGlobalSettingsFile(DEFAULT_GLOBAL_SETTINGS_FILE);

    DefaultSettingsBuilderFactory mvnSettingBuilderFactory = new DefaultSettingsBuilderFactory();
    DefaultSettingsBuilder settingsBuilder = mvnSettingBuilderFactory.newInstance();
    SettingsBuildingResult settingsBuildingResult = settingsBuilder.build(settingsBuildingRequest);
    return settingsBuildingResult.getEffectiveSettings();
}

关于java - 如何在 Maven 插件之外加载 org.apache.maven.settings.Settings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48056550/

相关文章:

android - 将Maven与AAR结合使用的Android项目没有Eclipse错误

java - 在 java REST 中解析 JSON 参数时出错

java - 从 JSONArray 中检索特定元素

eclipse - tomcat和java SDK问题

java - 有没有办法在调试过程中保存变量的实例以供重用?

java - libgdx 播放声音或音乐 - 最佳实践

java - --add-modules 仅在编译时

java - 无法在spring + maven + tomcat中启动配置文件

java - m2eclipse和maven命令行的区别

java - 当包在 pom.xml 中列为依赖项时,为什么我收到 ClassNotFoundException