You can't configure an artifact repository easily from the plugin
configuration, so the likely change is to make a feature request to have
something like:
/** @parameter */
private String alternateLocalRepository;

This would be used instead of localRepository when specified.

Cheers,
Brett

2008/9/1 Dan Tran <[EMAIL PROTECTED]>

> On Sun, Aug 31, 2008 at 5:48 PM, Dan Tran <[EMAIL PROTECTED]> wrote:
> > Oops, I pasted the wrong declaration, it should be
> >
> >    /**
> >     * Location of the local repository.
> >     *
> >     * @parameter expression="${localRepository}"
> >     * @readonly
> >     * @required
> >     */
> >    protected org.apache.maven.artifact.repository.ArtifactRepository
> local;
> >
> > Looks like the expression=${localRepository} is the implicit
> > ${settings.localRepository}
> >
> > Is there a way to pass in   my own localRepository instead of using
> > the implicit settings.localRepository.  This way, there is no need to
> > enhance the plugin.
>
> Of course, we still need to remove @readonly which is a minimal change
> in the plugin
>
>
> >
> > If we need to enhance dependency plugin to allow override of its
> > "local" configuration,
> > how is it going to be?  Perhaps, we can add an additional
> > configuration like localRepositoryPath( String) and create a new
> > DefaultArtifactRepository if it is not null to replace the declared
> > "local" at execution time?
> >
> >
> > Thanks
> >
> > -Dan
> >
> > On Sun, Aug 31, 2008 at 5:25 PM, Brett Porter <[EMAIL PROTECTED]>
> wrote:
> >> You're on the right track, but there's a few problems here.
> >> Firstly, I'm a bit confused as you have artifactFactory, but refer to
> local
> >> repository. This is important - if the plugin is using a factory to
> create a
> >> repository then you can replace the factory, but if it's using
> >> ${settings.localRepository} you'll have to override that in a different
> way.
> >>
> >> As for replacing an implementation, the method you've given is not quite
> >> correct. You actually need something like:
> >>
> >> <configuration>
> >>  <factory implementation="com.foo.bar.MyArtifactFactory" />
> >> </configuration>
> >>
> >> A good example of this is the shade plugin, which does so for it's
> >> transformers.
> >>
> >> But if @component is used, or @readonly - this may not work anyway.
> >>
> >> For the specific use case you are talking about, replacement components
> >> shouldn't be needed, it just sounds like you want to modify the local
> >> repository. That seems like a feature request to make of the dependency
> >> plugin.
> >>
> >> Cheers,
> >> Brett
> >>
> >> 2008/9/1 Dan Tran <[EMAIL PROTECTED]>
> >>
> >>> Currently,  a typical localRepository configuration is declared like
> >>> this in the mojo.
> >>>
> >>>   /**
> >>>     * Used to look up Artifacts in the remote repository.
> >>>     *
> >>>     * @parameter
> >>>
> expression="${component.org.apache.maven.artifact.factory.ArtifactFactory}"
> >>>     * @required
> >>>     * @readonly
> >>>     */
> >>>    protected org.apache.maven.artifact.factory.ArtifactFactory factory;
> >>>
> >>>
> >>> This means, I can create my own local repository plexus component
> >>> implementation, declare it as a dependency in my pom in the plugin's
> >>> dependency list, and pass it in as a execution configuration like
> >>>
> >>>  <execution>
> >>>    <configuration>
> >>>       <local>myExecutionLocalRepository</local>
> >>>    </configuration?
> >>>  </execution>
> >>>  </executions>
> >>>  <dependencies>
> >>>    my implementation goes here
> >>>  </dependencies>
> >>>
> >>> Where myExecutionLocalRepository is the plexus component name, known as
> >>> "hint"
> >>>
> >>> Is the right approach?
> >>>
> >>> The motivation behind this is that I have a need to use dependency
> >>> plugin to copy and unpack some very large artifacts and I dont want
> >>> it to pollute my global local repository especially when using
> >>> snapshot artifacts.  myExecutionLocalRepository is located under
> >>> target directory so that It can be cleanup via maven clean.
> >>>
> >>> Advice is greatly appreciated.
> >>>
> >>> Thanks
> >>>
> >>> -D
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>
> >>
> >> --
> >> Brett Porter
> >> Blog: http://blogs.exist.com/bporter/
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Brett Porter
Blog: http://blogs.exist.com/bporter/

Reply via email to