Thanks Brett, will file an enhance request against dependency plugin
-D
On Mon, Sep 1, 2008 at 12:34 AM, Brett Porter <[EMAIL PROTECTED]> wrote:
> 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/
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]