[ https://issues.apache.org/jira/browse/ARCHETYPE-622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17459013#comment-17459013 ]
Marian Macik commented on ARCHETYPE-622: ---------------------------------------- [~slachiewicz] thanks for handling this! Can you mark the Jira as done? Thanks! > 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 > > 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)