Arquillian Shrinkwrap предоставляет пользовательский файл settings.xml

Я настроил проект arquillian, и все это отлично работает локально, но при запуске сборки maven в нашем блоке непрерывной интеграции происходит сбой. Мне удалось разобраться в проблеме, и это связано с тем, что файл maven user settings.xml в поле CI на самом деле имеет некоторые определения сервера (для другого проекта), тогда как локально для моей машины это файл по умолчанию (без определенных серверов ). Тесты вызывают RuntimeException, потому что MavenResolver ищет файл settings-security.xml, которого нет в поле CI.

Я бы предпочел не добавлять settings-security.xml, а вместо этого хотел бы предоставить распознавателю «пустой» файл settings.xml или, что еще лучше, сказать ему не использовать его. Это возможно?

Я попробовал ответ из этой темы https://developer.jboss.org/thread/174873, который в значительной степени говорит добавить следующую опцию в отказоустойчивый плагин:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                 <version>2.9</version><!-- or upper -->
                        <configuration>
                            <systemPropertyVariables>
                                   <org.apache.maven.user-settings>nonExistentSetting.xml</org.apache.maven.user-settings>
                             </systemPropertyVariables>
                        </configuration>
</plugin>

Если я сделаю это и предоставлю файл xml, который не существует, все будет работать нормально из командной строки, запускающей «mvn clean install», но когда я отлаживаю в своей среде IDE, все равно происходит сбой.

Есть ли способ, которым я могу: Скажите распознавателю maven не использовать файл settings.xml/использовать файл «по умолчанию» Создайте пустой файл settings.xml в моем проекте и сообщите распознавателю maven использовать это

Я попробовал следующую строку в своем коде для создания моего архива, но, похоже, это не дало эффекта:

.addAsLibraries(Maven.configureResolver().fromFile("test-settings.xml").loadPomFromFile("pom.xml").importRuntimeDependencies().resolve().withTransitivity().asFile())

Спасибо за любую помощь, Крейг


person Craig    schedule 16.07.2015    source источник


Ответы (1)


Преобразователь ShrinkWrap по умолчанию загружает settings-security.xml из

DEFAULT_SETTINGS_SECURITY_PATH = userHome == null ? ".settings-security.xml" : userHome.concat("/.m2/settings-security.xml").replace('/', File.separatorChar);

но вы можете переопределить это местоположение, установив

System.setProperty(MavenSettingsBuilder.ALT_SECURITY_SETTINGS_XML_LOCATION,
            "someDir/empty-settings-security.xml");

Если указано альтернативное местоположение (непустая строка), теоретически следует пропустить местоположение по умолчанию. Однако я не уверен на 100%, что этот метод сработает.

person mmatloka    schedule 23.07.2015