public class MavenProjectRepository extends AbstractRepositoryImpl
Repository
implementation that loads modules
from the transitive dependencies set in a MavenProject
.Modifier and Type | Field and Description |
---|---|
private org.apache.maven.artifact.factory.ArtifactFactory |
artifactFactory |
private org.apache.maven.artifact.resolver.ArtifactResolver |
artifactResolver |
private java.util.Map<java.lang.String,org.apache.maven.artifact.Artifact> |
artifacts
All
Artifact s in the transitive dependency list
keyed by their id . |
private static java.util.regex.Pattern |
ID_PATTERN |
private org.apache.maven.artifact.repository.ArtifactRepository |
localRepository |
private static java.util.logging.Logger |
logger |
private org.apache.maven.project.MavenProject |
project |
private static java.lang.String |
TOKEN |
listeners
Constructor and Description |
---|
MavenProjectRepository(org.apache.maven.project.MavenProject project,
org.apache.maven.artifact.resolver.ArtifactResolver artifactResolver,
org.apache.maven.artifact.repository.ArtifactRepository localRepository,
org.apache.maven.artifact.factory.ArtifactFactory artifactFactory) |
Modifier and Type | Method and Description |
---|---|
private MavenModuleDefinition |
buildModule(org.apache.maven.artifact.Artifact a,
java.util.Map<ModuleId,ModuleDefinition> moduleDefs,
java.util.List<java.net.URI> libraries) |
protected MavenModuleDefinition |
loadJar(java.io.File jar)
Loads a jar file and builds a
ModuleDefinition . |
protected void |
loadModuleDefs(java.util.Map<ModuleId,ModuleDefinition> moduleDefs,
java.util.List<java.net.URI> libraries)
Called from
AbstractRepositoryImpl.initialize() to load all ModuleDefinition s and libraries defintions |
static void |
prepareProject(org.apache.maven.project.MavenProject project)
When creating
MavenProjectRepository from the current project (which is used
to launch mvn), and if the compile phase has run yet, then the main artifact is
still null. |
(package private) java.io.File |
resolveArtifact(java.lang.String id) |
add, addLibrary, addListener, find, findAll, findAll, getJarLocations, getLocation, getName, initialize, newModuleDefinition, remove, removeLibrary, removeListener, shutdown, toString
private final org.apache.maven.project.MavenProject project
private final org.apache.maven.artifact.resolver.ArtifactResolver artifactResolver
private final org.apache.maven.artifact.repository.ArtifactRepository localRepository
private final org.apache.maven.artifact.factory.ArtifactFactory artifactFactory
private final java.util.Map<java.lang.String,org.apache.maven.artifact.Artifact> artifacts
Artifact
s in the transitive dependency list
keyed by their id
.private static final java.lang.String TOKEN
private static final java.util.regex.Pattern ID_PATTERN
private static final java.util.logging.Logger logger
public MavenProjectRepository(org.apache.maven.project.MavenProject project, org.apache.maven.artifact.resolver.ArtifactResolver artifactResolver, org.apache.maven.artifact.repository.ArtifactRepository localRepository, org.apache.maven.artifact.factory.ArtifactFactory artifactFactory)
public static void prepareProject(org.apache.maven.project.MavenProject project) throws java.io.IOException
MavenProjectRepository
from the current project (which is used
to launch mvn), and if the compile phase has run yet, then the main artifact is
still null.
However, it's often convenient to pick up the files that were left in the file system
from the previous execution. This method checks this situation and updates MavenProject
accordingly, so that it can be then passed to the constructor of MavenProjectRepository
.
Think of this as a pre-processing phase to compensate for the lack of the compile phase invocation.
java.io.IOException
protected void loadModuleDefs(java.util.Map<ModuleId,ModuleDefinition> moduleDefs, java.util.List<java.net.URI> libraries) throws java.io.IOException
AbstractRepositoryImpl
AbstractRepositoryImpl.initialize()
to load all ModuleDefinition
s and libraries defintionsloadModuleDefs
in class AbstractRepositoryImpl
java.io.IOException
private MavenModuleDefinition buildModule(org.apache.maven.artifact.Artifact a, java.util.Map<ModuleId,ModuleDefinition> moduleDefs, java.util.List<java.net.URI> libraries) throws java.io.IOException
java.io.IOException
java.io.File resolveArtifact(java.lang.String id) throws java.io.IOException
java.io.IOException
protected MavenModuleDefinition loadJar(java.io.File jar) throws java.io.IOException
AbstractRepositoryImpl
ModuleDefinition
.
The system allows ModuleDefinition
s to be built in any way,
but in practice module jars need to be built in a way agnostic
to Repository
implementations (so that same module could
be used in different Repository
s), so it makes sense
to try to stick to the "common" loading scheme.
loadJar
in class AbstractRepositoryImpl
jar
- Either a jar file or a directory that has the same structure as a jar file.java.io.IOException