[ 
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)

Reply via email to