On 3/30/06, Rollo, Dan <[EMAIL PROTECTED]> wrote: > Cool. Just to verify if I'm thinking correctly: Would the "correct" > usage be: > > 1. setLocalRepositoryDirectory(<myLocalRepoDirectory>); > 2. alignWithUserInstallation(false); > 3. mavenEmbedder.start(); > > Thanks, > Dan > > PS: Any chance this fix could make it into 2.0.4?
probably no, it's a rather big change on the branch. Milos > > > -----Original Message----- > From: Jason van Zyl [mailto:[EMAIL PROTECTED] > Sent: Thursday, March 30, 2006 4:29 PM > To: Maven Users List > Subject: Re: [m2.0.3] Embedder - setAlignWithUser ignored > > Rollo, Dan wrote: > > It appears there is no way to override the "localRepository" used by > > MavenEmbedder. > > There is on a branch I'm working on which will most likely be merged > into the trunk after the 2.0.4 release. > > > > > Some code from MavenEmbedder.java: > > > > public void setLocalRepositoryDirectory( File > > localRepositoryDirectory ) > > { > > this.localRepositoryDirectory = localRepositoryDirectory; > > } > > ... > > public void start() > > throws MavenEmbedderException > > { > > detectUserInstallation(); > > ... > > > > private void detectUserInstallation() > > { > > if ( new File( userHome, ".m2" ).exists() ) > > { > > alignWithUserInstallation = true; > > } > > } > > > > /** > > * Create the Settings that will be used with the embedder. If we > > are aligning with the user > > * installation then we lookup the standard settings builder and > > use that to create our > > * settings. Otherwise we constructs a settings object and > > populate the information > > * ourselves. > > * > > * @throws MavenEmbedderException > > * @throws ComponentLookupException > > */ > > private void createMavenSettings() > > throws MavenEmbedderException, ComponentLookupException > > { > > if ( alignWithUserInstallation ) > > { > > // > > ---------------------------------------------------------------------- > > // We will use the standard method for creating the > > settings. This > > // method reproduces the method of building the settings > > from the CLI > > // mode of operation. > > // > > ---------------------------------------------------------------------- > > > > settingsBuilder = (MavenSettingsBuilder) embedder.lookup( > > MavenSettingsBuilder.ROLE ); ... > > } > > else > > { > > if ( localRepository == null ) > > { > > throw new IllegalArgumentException( "When not aligning > > > with a user install you must specify a local repository location using > > > the setLocalRepositoryDirectory( File ) method." ); > > } > > > > settings = new Settings(); > > > > settings.setLocalRepository( > > localRepositoryDirectory.getAbsolutePath() ); ... > > > > > >>From the behavior and code, the detectUserInstallation() method will > > never allow me to override the localRepository if an ".m2" user > > directory exists (even if I call setAlignWithUserInstallation(false) > > before calling start() ). This don't seem right. > > > > I believe the purpose of the setLocalRepositoryDirectory() is to allow > > > overriding the default local repo location, but the current logic in > > the > > start() method always sets the field "alignWithUserInstallation" to > > true if ".m2" exists. > > > > Is the local repo dir supposed to be overridable, and if so, is there > > some other way to do it? > > > > Thanks, > > Dan > > > > -------------------------------------------------- > > This e-mail and any files transmitted with it may contain privileged > or confidential information. > > It is solely for use by the individual for whom it is intended, even > if addressed incorrectly. > > If you received this e-mail in error, please notify the sender; do not > > > disclose, copy, distribute, or take any action in reliance on the > > contents of this information; and delete it from your system. Any > other use of this e-mail is prohibited. > > > > Thank you for your compliance. > > -------------------------------------------------- > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > -- > jvz. > > Jason van Zyl > jason at maven.org > http://maven.apache.org > > Simplex sigillum veri. (Simplicity is the seal of truth.) > > -------------------------------------------------- > This e-mail and any files transmitted with it may contain privileged or > confidential information. > It is solely for use by the individual for whom it is intended, even if > addressed incorrectly. > If you received this e-mail in error, please notify the sender; do not > disclose, copy, distribute, > or take any action in reliance on the contents of this information; and > delete it from > your system. Any other use of this e-mail is prohibited. > > Thank you for your compliance. > -------------------------------------------------- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]