[
https://issues.jboss.org/browse/FORGE-1030?page=com.atlassian.jira.plugin...
]
Lincoln Baxter III commented on FORGE-1030:
-------------------------------------------
Hey Lennart,
Thanks for pointing this out. You are correct, we should probably better support
multi-module plugins. Some background on why we don't currently:
First, we opted to strive for a simple plugin development experience - one pom, one
project, and it's worked well so far. Unfortunately, you're one of the first
who's built a plugin as a multi-module project, so this is the first time we've
had to deal with it. I know it doesn't help you *now*, but in Forge2, this is
basically resolved already because all addon installation actually does work via maven, so
if the project happens to be built from source first, it still ultimately gets installed
via maven dependency resolution.
The question is, do you want to wait for that? And I'm guessing the answer is no. So
perhaps you'd be willing to submit a pull request and test case for this feature? I
hope you don't think we're just ignoring this in Forge 1 and dumping all the load
on you, but basically the question is how much do we want to try to enhance the old model
when the new one is around the corner already.
This is why I keep asking for contributions :) But! If it's really critical and you
want some help, I can probably get someone to work on this with you.
Repository.yaml does not use given project in 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
Priority: Blocker
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