maven/maven-embedder/notes.txt

64 lines
2.4 KiB
Plaintext

When you create the assembly you must manually install it in your
local repository for now in order the maven-embedder-it tests to
work. jvz.
-- parse xml to in-memory model
Now MavenEmbedder.readProjectWithDependencies()
transitively resolve all dependencies and download them
if anything is missing.
-- we need a callback for progress indication:
download, build, etc
-- run m2 (embedded): including running building, archetypes, etc.
-- introspect available plugins and their goals
-- to generate source folders for eclipse project from m2 pom.xml
we need to run generate-sources phase, so all plugins
registered for this phase will be kicked of and will register
target folders for compilation.
Ideally it would be nice to ask these plugins for the target
folders, but Brett said it will be only in 2.1, so I guess
we'll have to actually run these plugins and generate code.
-- In order to nicely show all the errors and events in the IDE UI
We need to have two messages for EACH event/error:
-- the short description (in Eclipse it can be used in Problems view)
-- detailed description (can be used in annotation/editors markers)
-- Need getters for MavenEmbedder properties. E.g. to retrieve default
location of the local repository
-- How to deal with the plugin registry builder whose component descriptor
container references like ${maven.home} and ${user.home}. These can be
placed in the context for plexus.
-- Would be nice to centralize the use of maven.home. Possibly have the
embedder take it in and set a system property of plexus context value.
There seems to be a tad of code duplicated in the plugin registry
builder and the settings builder.
-- What are all the settings that must be provided? Ones that can be set
and what the default values would be if they aren't set.
-- Need to make an input handler to IDE use soon.
-- having to add all the component descriptors by hand and the maven
version metadata is a real drag. something needs to be added to
the assembly plugin.
-- maven.home
this is a CLI notion and should not be required by the embedder but
we still need to deal with notions of centralize configuration which
are extremely important in the corporate environment.
-- ~/.m2
plugin registry and settings should be stored in the tool specific locations
-- local repository will be shared and default to ~/.m2/repository
-- add a method that gives the standard lifecycle phases.