[
https://issues.apache.org/jira/browse/NPANDAY-386?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13014770#comment-13014770
]
Lars Corneliussen edited comment on NPANDAY-386 at 4/1/11 6:03 PM:
-------------------------------------------------------------------
This is much harder than I thought :(
So here is what I found out.
* This has nothing to do with MVN 3. It is even harder in MVN 3.
* Both Maven 2 and 3 suffer from MNG-1911. Bootstrapping a new version with
itself is not possible in one single command.
* Using project.version is possible, only if the maven-compile-plugin ALREADY
has been installed to the local repo. But it will then use the latest version
of the npanday plugins built and installed within the reactor for all
subsequent projects.
*Solution*
Both Maven 2 and 3 support building a single project and all its dependencies
within one reactor. Building just the maven-compile-plugin can be done by this
command line:
{code}mvn install --projects npanday.plugin:maven-compile-plugin
--also-make{code}
*BUT in MVN 3* this does not work, because MVN 3 tries to resolve extensions
much earlier than MVN 2 did. In order to bootstrap using MVN 3, you have to
temporarily remove the 'dotnet'-module, build the compile-plugin using the
specified command above, reintegrate 'dotnet' and then build alltogether using
mvn install.
I created two batch files, that should help with this issue. They are checked
in beside the pom.
Now I think we should only "bootstrap" NPanday, when we need new features to
build ourselves. On my machine this is the case. I can't manage to build either
against 1.2.1 or 1.3-incubating - neigher with MVN 2.2.1 nor with MVN 3. The
errors are many different ones :(
Some of the errors I get:
* MVN 2/3, against 1.3-incubating, .NET 2.0 SDK 64bit Prompt: Unable to cast
object of type 'NPanday.Plugin.FieldAttribute' to type
'NPanday.Plugin.FieldAttribute'
** The MojoGenerator uses 1.3.0.0 of NPanday.Plugin, while NPanday.Adding
(where it fails) is referencing 1.3.1.0
* MVN 2/3, against 1.3-incubating, VS 2010 Prompt: Unhandled Exception:
System.BadImageFormatException: Could not load file or assembly
'NPanday.Plugin.Addin' or one of its dependencies. This assembly is built by a
runtime newer than the currently loaded runtime and cannot be loaded.
** this must have to do with 4.0...
*Actually* the first of the two errors might also arise when building 1.3.2
against 1.3.1... So we might have to look closer into that.
was (Author: lcorneliussen):
This is much harder than I thought :(
So here is what I found out.
* This has nothing to do with MVN 3. It is even harder in MVN 3.
* Both Maven 2 and 3 suffer from MNG-1911. Bootstrapping a new version with
itself is not possible in one single command.
* Using project.version is possible, only if the maven-compile-plugin ALREADY
has been installed to the local repo. But it will then use the latest version
of the npanday plugins built and installed within the reactor for all
subsequent projects.
*Solution*
Both Maven 2 and 3 support building a single project and all its dependencies
within one reactor. Building just the maven-compile-plugin can be done by this
command line:
{code}mvn install --projects npanday.plugin:maven-compile-plugin
--also-make{code}
*BUT in MVN 3* this does not work, because MVN 3 tries to resolve extensions
much earlier than MVN 2 did. In order to bootstrap using MVN 3, you have to
temporarily remove the 'dotnet'-module, build the compile-plugin using the
specified command above, reintegrate 'dotnet' and then build alltogether using
mvn install.
I created two batch files, that should help with this issue. They are checked
in beside the pom.
Now I think we should only "bootstrap" NPanday, when we need new features to
build ourselves. On my machine this is the case. I can't manage to build either
against 1.2.1 or 1.3-incubating - neigher with MVN 2.2.1 nor with MVN 3. The
errors are many different ones :(
Some of the errors I get:
* MVN 2/3, against 1.3-incubating, .NET 2.0 SDK 64bit Prompt: Unable to cast
object of type 'NPanday.Plugin.FieldAttribute' to type
'NPanday.Plugin.FieldAttribute'
* The MojoGenerator uses 1.3.0.0 of NPanday.Plugin, while NPanday.Adding
(where it fails) is referencing 1.3.1.0
* MVN 2/3, against 1.3-incubating, VS 2010 Prompt: Unhandled Exception:
System.BadImageFormatException: Could not load file or assembly
'NPanday.Plugin.Addin' or one of its dependencies. This assembly is built by a
runtime newer than the currently loaded runtime and cannot be loaded.
* this must have to do with 4.0...
*Actually* the first of the two errors might also arise when building 1.3.2
against 1.3.1... So we might have to look closer into that.
> Switch to Maven 3 and bootstrap NPanday using itself (within the same reactor)
> ------------------------------------------------------------------------------
>
> Key: NPANDAY-386
> URL: https://issues.apache.org/jira/browse/NPANDAY-386
> Project: NPanday
> Issue Type: Improvement
> Components: Development Setup
> Reporter: Lars Corneliussen
> Fix For: 1.3.1-incubating
>
>
> Suggestion:
> 1) Bootstrapping NPanday with current NPanday. (not possible on MVN 2.2.x)
> 2) Require Maven>= 3 for *building* NPanday>= 1.3.1
> We should still make sure, that NPanday does work with Maven 2.2.x, though.
> Integration tests should run both in Maven 2.2.1 and Maven 3.0.2 or 3.0.3
> *TODO:*
> * -Add a Jira-Issue-
> * -change npanday.stable.version to npanday.bootstrap.version-
> * preconfigure npanday.bootstrap.version with ${project.version}
> * update docs
> (http://incubator.apache.org/npanday/docs/1.3-incubating/developers/building.html)
> * document how to do the first build (when npanday-settings.xml not yet
> exists)
> *Helpers on Windows for rapid switching of maven versions:*
> {code:title=mvn3.bat (somewhere on the PATH)}
> set M2=C:\Program Files\Apache\apache-maven-3.0.2\bin
> set M2_HOME=C:\Program Files\Apache\apache-maven-3.0.2
> set PATH=C:\Program Files\Apache\apache-maven-3.0.2\bin;%PATH%
> mvn --version
> {code}
> {code:title=mvn2.bat (somewhere on the PATH)}
> set M2=C:\Program Files\Apache\apache-maven-2.2.1\bin
> set M2_HOME=C:\Program Files\Apache\apache-maven-2.2.1
> set PATH=C:\Program Files\Apache\apache-maven-2.2.1\bin;%PATH%
> mvn --version
> {code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira