papegaaij opened a new issue, #1724:
URL: https://github.com/apache/wicket/issues/1724

   Since #1658 the quickstart archetype is tested during the build (#1663 on 
master, #1664 on `wicket-10.x`). To give the generated project the Wicket 
modules it needs, `archetypes/quickstart/pom.xml` runs 
`maven-invoker-plugin:install` in the `verify` lifecycle:
   
   ```xml
   <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-invoker-plugin</artifactId>
        <executions>
                <execution>
                        <goals>
                                <goal>install</goal>
                        </goals>
                        <configuration>
                                <scope>test</scope>
                        </configuration>
                </execution>
        </executions>
   </plugin>
   ```
   
   No `localRepositoryPath` is configured, so `invoker:install` uses its 
default, the user's own local repository (`~/.m2/repository`). As a result, a 
plain `mvn verify`, which normally never touches the local repository, installs 
17 files there.
   
   On the 10.12.0 and 11.0.0 release candidates that was:
   
   - `wicket-archetype-quickstart`: jar, sources jar and pom
   - `wicket-core`, `wicket-request`, `wicket-util`, `wicket-tester`, 
`wicket-native-websocket-core` and `wicket-native-websocket-javax`: jar and pom
   - `wicket-parent` and `wicket-native-websocket`: pom
   
   Maven marks them as locally installed (`>=` in `_remote.repositories`), so 
it never re-downloads them.
   
   This matters most when verifying a release candidate. After `mvn verify` on 
the RC source, `~/.m2` holds jars with the final release version, built from 
the RC. If the vote fails and the next RC reuses the version number, any later 
build that depends on that version silently uses the old RC jars instead of the 
new ones. It also mixes self-built and published artifacts during day-to-day 
development.
   
   `-DskipTests` avoids it, because `invoker.skip` follows `skipTests`, but 
then the archetype test doesn't run either.
   
   ## Suggested fix
   
   Give `invoker:install` a `localRepositoryPath` under `target/`, for example 
`${project.build.directory}/it-repo`, and make the archetype integration test's 
build resolve from that repository. The generated project still needs 
third-party dependencies from Maven Central. The test repository can either 
fetch them itself or use the user's repository as a mirror for everything 
except `org.apache.wicket`; which of these works best with 
`maven-archetype-plugin:integration-test` still needs checking.
   
   Affects `wicket-10.x` and `master`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to