Java 如何在maven插件之外加载org.apache.maven.settings.settings?

Java 如何在maven插件之外加载org.apache.maven.settings.settings?,java,maven,Java,Maven,我需要从Maven插件外部访问settings.xml。如何实例化与用户的settings.xml相对应的org.apache.maven.settings.settings 为什么需要在Maven插件之外访问它?您想解决什么样的问题?我在settings.xml中使用加密密码作为构建过程的一部分。在本地调试应用程序时,我希望在运行时重用这些相同的密码。我不建议将设置中的密码用于生成过程和应用程序的运行时..+1。FitNesse是我学到的第一个测试自动化工具。我仍然从旧的FitNesse解决方

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


为什么需要在Maven插件之外访问它?您想解决什么样的问题?我在settings.xml中使用加密密码作为构建过程的一部分。在本地调试应用程序时,我希望在运行时重用这些相同的密码。我不建议将设置中的密码用于生成过程和应用程序的运行时..+1。FitNesse是我学到的第一个测试自动化工具。我仍然从旧的FitNesse解决方案中提取通用解决方案。
/**
 * @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();
}