[forge-issues] [JBoss JIRA] (FORGE-1030) Support multi-module Forge plugins
Lennart Jörelid (JIRA)
jira-events at lists.jboss.org
Wed Jul 31 18:28:26 EDT 2013
[ https://issues.jboss.org/browse/FORGE-1030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12794376#comment-12794376 ]
Lennart Jörelid edited comment on FORGE-1030 at 7/31/13 6:26 PM:
-----------------------------------------------------------------
After taking a look at the surefire plugin, we could deduct some improvements to the above:
# The http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html page informs us that the {{skipTests}} parameter should be set when skipping tests nowadays.
This implies that we can use something like the following in the root pom of a Forge Plugin project:
{code}
<!--
################################################
# Section 5: Profiles
################################################
-->
<profiles>
<profile>
<id>install_plugin</id>
<activation>
<property>
<name>skipTests</name>
<value>true</value>
</property>
</activation>
<!-- Add definitions here to enable the build to run properly when all tests are switched off. -->
</profile>
</profiles>
{code}
was (Author: lennartj):
After taking a look at the surefire plugin, we could deduct some improvements to the above:
# The http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html page informs us that the {{skipTests}} parameter should be set when skipping tests nowadays.
This implies that we can use something like the following in the root pom of a Forge Plugin project:
{code}
<!--
################################################
# Section 5: Profiles
################################################
-->
<profiles>
<profile>
<id>install_plugin</id>
<activation>
<property>
<name>skipTests</name>
<value>true</value>
</property>
</activation>
<!-- Add definitions here to enable the build to run properly all tests switched off. -->
</profile>
</profiles>
{code}
> Support multi-module Forge plugins
> ----------------------------------
>
> Key: FORGE-1030
> URL: https://issues.jboss.org/browse/FORGE-1030
> Project: Forge
> Issue Type: Bug
> Components: Documentation, Plugin API, Plugin Repository
> Affects Versions: 1.3.3.Final
> Reporter: Lennart Jörelid
> Assignee: George Gastaldi
> Priority: Blocker
> Fix For: 1.3.4.Final
>
> Attachments: forge_1030_codeAnalysis.png
>
>
> It seems that Forge really needs better support for the default Maven
> development process. In repository.yaml, Forge plugins are defined by giving
> a Maven project GAV for the project holding the forge plugin definitions, as well as the GitHub repository holding the plugin source.
> Yet, Forge seems to ignore the Maven GAV information given in repository.yaml when checking out and building the plugin locally.
> This is a rather nasty bug, which in its current state effectively prevents anyone from using a multi-module build for their plugins (and it is also undocumented).
> An example is shown below:
> {code}
> [no project] Nazgul $ forge install-plugin nazgul
> ***INFO*** Preparing to install plugin: nazgul
> ***INFO*** Checking out plugin source files to [/var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570] via 'git'
> ***INFO*** Switching to branch/tag [refs/heads/1.3.3.Final]
> ? The project does not appear to be a Forge Plugin Project, install anyway? [y/N]
> {code}
> While this analysis by Forge is incorrect (the Maven GAV given in the repository.yaml is indeed a project which holds plugins), it gets worse after installation:
> {code}
> [INFO] ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] nazgul-forge-parent ............................... SUCCESS [7.921s]
> [INFO] nazgul-forge-api-parent ........................... SUCCESS [4.345s]
> [INFO] nazgul-forge-model-parent ......................... SUCCESS [1.274s]
> [INFO] nazgul-forge-reactor .............................. SUCCESS [0.847s]
> [INFO] nazgul-forge-poms-reactor ......................... SUCCESS [0.058s]
> [INFO] nazgul-forge-analyzer-api ......................... SUCCESS [5.562s]
> [INFO] nazgul-forge-analyzer-impl-nazgul ................. SUCCESS [1.666s]
> [INFO] nazgul-forge-analyzer-reactor ..................... SUCCESS [0.020s]
> [INFO] nazgul-forge-factory-model ........................ SUCCESS [2.434s]
> [INFO] nazgul-forge-factory-api .......................... SUCCESS [7.634s]
> [INFO] nazgul-forge-factory-impl-nazgul .................. SUCCESS [2.724s]
> [INFO] nazgul-forge-factory-reactor ...................... SUCCESS [0.032s]
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 36.580s
> [INFO] Finished at: Mon Jul 22 07:46:48 CEST 2013
> [INFO] Final Memory: 49M/247M
> [INFO] ------------------------------------------------------------------------
> ***INFO*** Cleaning up temp workspace [/var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570]
> Deleted /var/folders/6g/9n7r543d2bv9n2qjvnvf_hsh0000gn/T/forgetemp6186363544408555570
> ***ERROR*** Exception encountered: Build artifact [nazgul-forge-reactor-1.0.1-SNAPSHOT.pom] is missing and cannot be installed. Please resolve build errors and try again. (type "set VERBOSE true" to enable stack traces)
> {code}
> So ...
> # The repository.yaml includes a full Maven GAV to the project which holds Forge plugins.
> # Forge uses repository.yaml to download the source from GitHub and build it
> # Forge ignores the Maven GAV given in repository.yaml, and simply uses the root reactor project to inspect and attempt to install the plugins.
> To fix this bug, Forge needs to find the project given within the repository.yaml within the downloaded reactor and install the plugins from *that* project.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the forge-issues
mailing list