[
https://issues.apache.org/jira/browse/ARCHETYPE-622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sylwester Lachiewicz reopened ARCHETYPE-622:
--------------------------------------------
reverted due to failing tests on Jenkins
> maven-archetype-plugin integration-test doesn't use Maven settings from the
> main build
> --------------------------------------------------------------------------------------
>
> Key: ARCHETYPE-622
> URL: https://issues.apache.org/jira/browse/ARCHETYPE-622
> Project: Maven Archetype
> Issue Type: Bug
> Components: Plugin
> Affects Versions: 3.2.0
> Reporter: Marian Macik
> Assignee: Sylwester Lachiewicz
> Priority: Major
> Fix For: 3.2.1
>
>
> Hi,
> I would like to raise an issue for the Maven Archetype Plugin
> integration-test goal. When I execute the plugin with integration-test goal,
> I would expect that it would continue using maven settings from the main
> build unless otherwise specified. This is how Maven Invoker Plugin already
> behaves and because of this, there is inconsistency between the two.
> Currently the archetype plugin either uses no settings (the inner Maven build
> is ran as if without *-s* option) or uses settings.xml file provided via
> *settingsFile* config option or *archetype.test.settingsFile* property.
> The issue here is, if a user wants to always propagate settings from the
> Maven build (invoker default), it does not always work. There are basically 2
> options:
> 1. Permanently add *settingsFile* reference to the POM file like this:
> {code:xml}
> <settingsFile>${session.request.userSettingsFile.path}</settingsFile>{code}
> Which will use the path from settings.xml provided to the main build. The
> issue with this approach is that in case a user doesn't provide the *-s*
> option, the maven invoker will fail saying that ${user.home}/.m2/settings.xml
> doesn't exist because by default Maven doesn't create this file with default
> installation, i.e. it is not mandatory. So there is no way to satisfy both
> use cases (pass the settings of the main build with and without *-s* option
> specified).
> OR
> 2. Explicitly set *archetype.test.settingsFile* from the command line in case
> a user is going to specify the *-s* option with the same value. In case a
> user is not going to provide the *-s* option, don't set the property from
> command line. This is again not ideal as we need to remember to specify that
> one property if and only if *-s* is specified.
> So far we have done a workaround which will dump the current Maven settings
> to a file with the help of the
> [effective-settings|https://maven.apache.org/plugins/maven-help-plugin/effective-settings-mojo.html]
> goal of the maven-help-plugin and then we reference it using the
> *settingsFile* config option of the archetype plugin.
> The main issue I see is that this doesn't work as the maven invoker plugin,
> although the functionality is the same - run integration tests on another
> project. Invoker plugin by default takes the settings from the main build,
> unless overridden. On the other hand, archetype plugin takes either nothing
> (i.e. will use default settings, different from the main build), or an
> [external
> settings.xml|https://github.com/apache/maven-archetype/blob/master/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java#L666-L681].
--
This message was sent by Atlassian Jira
(v8.20.1#820001)