I have no idea... I made a little test project to see what happens and
it seems to work like I said, and not like you're experiencing, so I
guess something else is up on your side (??).

I will go ahead and send the zip directly to you Matt as I know
attachments generally don't get passed through this mailing list...
But please reply to this email (on list) so we can keep the
conversation public, if you don't mind.

Wayne

On 3/13/07, mraible <[EMAIL PROTECTED]> wrote:

I'm seeing some strange behavior with this.  I've added a profiles.xml in the
root of my project. Its contents are:

<profiles>
    <profile>
        <id>xp</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>

<jdbc.url><![CDATA[jdbc:jtds:sqlserver://xpbox:1433/database]]></jdbc.url>
        </properties>
    </profile>
</profiles>

When I cd into "core" and run "mvn test", the correct "jdbc.url" property is
put into my filtered properties file.  However, when I run "mvn test" from
the top-level directory, it uses the value from pom.xml.

If I move the contents of profiles.xml to ~/.m2/settings.xml, everything
works fine, but I'm back to my same problem where this is a global property
override, and I'm only looking to override for this one project.

Any ideas why this happens?

Thanks,

Matt


mraible wrote:
>
> Thanks for the tip - I was able to use a profiles.xml file in my local
> project directory to get the behavior I wanted. Now I'm only overriding
> the property for a single project, and as long as I don't check it in to
> SVN, everyone else retains the default behavior from pom.xml.  Another
> thing I tried was to use <file> activation in settings.xml (because there
> are different files in the 2 Maven projects), but that didn't seem to
> work.  Here's what I used:
>
>           <activation>
>                 <file>
>                     <exists>${basedir}/lib/install.sh</exists>
>                 </file>
>             </activation>
>
> Thanks for the help Wayne - you solved my problem.
>
> Matt
>
>
> Wayne Fay wrote:
>>
>> Have you considered using a profiles.xml file (checked into SCM) which
>> contains settings specific to each person's environment? Then you
>> would use -Pmrmac which would specify the SQL server on another box,
>> while -Pmrxp would specify a local SQL server etc.
>>
>> This profiles.xml file would be available for everyone to read/write
>> but they would be responsible to only edit their piece of the config.
>> And you could have a generic config that is used for the common
>> developer environment with generic data. I'm not sure if this would
>> solve all your problems, though, as it would require you to copy this
>> profile.xml file to multiple locations in your SCM and potentially
>> keep them all in-sync.
>>
>> Wayne
>>
>> On 3/12/07, mraible <[EMAIL PROTECTED]> wrote:
>>>
>>> I've read this page quite a few times and the answer still doesn't jump
>>> out
>>> at me.  If I have two Maven projects that are completely unrelated, but
>>> they
>>> use the same property name - how do I override this property's value for
>>> one
>>> project, but not for the other?
>>>
>>> In other words, I want "jdbc.url" to have "localhost" for most projects
>>> on
>>> my system.  And in the SVN version of this other project, I have
>>> "localhost".  However, because I need to connect to a Windows/SQL Server
>>> box
>>> for this one project, I need to change <jdbc.url> to have "xpboxname"
>>> instead of localhost.  If I use any sort of system properties, that
>>> applies
>>> to all projects.  If I modify the pom.xml, that changes things for
>>> everyone
>>> (which doesn't need to happen because I'm on the only one on a Mac).
>>>
>>> I'm all for a workaround, but the only two options I see right now are:
>>>
>>> 1. Comment out the <activeByDefault> setting in pom.xml when I want to
>>> work
>>> on other projects (not the one that needs XP).
>>> 2. Change /etc/hosts so localhost resolves to my XP box.
>>>
>>> Thanks for any advice,
>>>
>>> Matt
>>>
>>>
>>> Wayne Fay wrote:
>>> >
>>> > It might be useful to review this documentation to make sure you're
>>> > doing it "the one true way". ;-)
>>> >
>>> >
>>> http://maven.apache.org/guides/introduction/introduction-to-profiles.html
>>> >
>>> > Wayne
>>> >
>>> > On 3/12/07, mraible <[EMAIL PROTECTED]> wrote:
>>> >>
>>> >> Don't worry - I am doing things "The Maven Way" with properties in
>>> the
>>> >> root
>>> >> pom.xml.  However, for this particular application, I need to
>>> override a
>>> >> property in settings.xml (I'm on a Mac and need to connect to a SQL
>>> >> Server
>>> >> instance not on "localhost"). The problem is, I have another
>>> application
>>> >> that uses the same property name (this can't be that rare, can it?).
>>> So
>>> >> when
>>> >> I override it in settings.xml, it overrides all my projects that use
>>> that
>>> >> property name.
>>> >>
>>> >> Matt
>>> >>
>>> >>
>>> >>
>>> >> Wayne Fay wrote:
>>> >> >
>>> >> > You are really not encouraged to use application-specific
>>> properties
>>> >> > in a settings.xml file, as your builds will not be portable.
>>> Instead,
>>> >> > these kinds of properties should be placed directly in the pom
>>> (parent
>>> >> > or children as appropriate) of the project you are working on.
>>> >> >
>>> >> > I use a similar process for our Ant builds, with project-specific
>>> >> > properties in my user home loaded first, then all-projects
>>> properties,
>>> >> > etc. I'm pretty sure this is a common pattern across Ant users.
>>> >> >
>>> >> > Wayne
>>> >> >
>>> >> > On 3/12/07, mraible <[EMAIL PROTECTED]> wrote:
>>> >> >>
>>> >> >> Since there's been no answers to this question, I'll assume the
>>> answer
>>> >> is
>>> >> >> "No, it's not possible to use settings.xml to have
>>> >> application-specific
>>> >> >> properties."
>>> >> >>
>>> >> >> Matt
>>> >> >>
>>> >> >>
>>> >> >> mraible wrote:
>>> >> >> >
>>> >> >> > I have a number of properties for database settings in my root
>>> >> pom.xml:
>>> >> >> >
>>> >> >> >         <!-- Database settings -->
>>> >> >> >
>>> >> >> >
>>> >> >>
>>> >>
>>> 
<dbunit.dataTypeFactoryName>org.dbunit.dataset.datatype.DefaultDataTypeFactory</dbunit.dataTypeFactoryName>
>>> >> >> >
>>> <dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
>>> >> >> >
>>> >> >> >
>>> >> >>
>>> >>
>>> 
<hibernate.dialect>org.hibernate.dialect.MySQLInnoDBDialect</hibernate.dialect>
>>> >> >> >         <jdbc.groupId>mysql</jdbc.groupId>
>>> >> >> >         <jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
>>> >> >> >         <jdbc.version>5.0.3</jdbc.version>
>>> >> >> >
>>> >> >> <jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
>>> >> >> >
>>> >> >> >
>>> >> >>
>>> >>
>>> 
<jdbc.url><![CDATA[jdbc:mysql://localhost/tutorial?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
>>> >> >> >         <jdbc.username>root</jdbc.username>
>>> >> >> >         <jdbc.password></jdbc.password>
>>> >> >> >
>>> >> >> > This works great when I have a single project.  However, I've
>>> >> started
>>> >> >> to
>>> >> >> > develop two applications with this setup, and I need to locally
>>> >> >> override
>>> >> >> > the jdbc.url for one of my projects.  Is it possible to do this
>>> on
>>> >> an
>>> >> >> > application-specific basis w/o affecting both applications.
>>> AFAIK,
>>> >> >> > settings.xml doesn't have anything fancy like (does it?):
>>> >> >> >
>>> >> >> > <activation>
>>> >> >> >      <property>
>>> >> >> >          <name>${pom.artifactId}</name>
>>> >> >> >          <value>projecttoactivatefor</value>
>>> >> >> >      </property>
>>> >> >> > </activation>
>>> >> >> >
>>> >> >> > With Ant, I was able to accomplish this using:
>>> >> >> >
>>> >> >> >     <!-- Load user overrides -->
>>> >> >> >     <property
>>> >> >> file="${user.home}/.${ant.project.name}-build.properties"/>
>>> >> >> >     <property file="${user.home}/.build.properties"/>
>>> >> >> >     <property file="build.properties"/>
>>> >> >> >
>>> >> >> > Thanks,
>>> >> >> >
>>> >> >> > Matt
>>> >> >> >
>>> >> >>
>>> >> >> --
>>> >> >> View this message in context:
>>> >> >>
>>> >>
>>> 
http://www.nabble.com/Is-it-possible-to-have-application-specific-properties-in-settings.xml--tf3363611s177.html#a9441555
>>> >> >> Sent from the Maven - Users mailing list archive at Nabble.com.
>>> >> >>
>>> >> >>
>>> >> >>
>>> ---------------------------------------------------------------------
>>> >> >> 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]
>>> >> >
>>> >> >
>>> >> >
>>> >>
>>> >> --
>>> >> View this message in context:
>>> >>
>>> 
http://www.nabble.com/Is-it-possible-to-have-application-specific-properties-in-settings.xml--tf3363611s177.html#a9444290
>>> >> Sent from the Maven - Users mailing list archive at Nabble.com.
>>> >>
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> 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]
>>> >
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> 
http://www.nabble.com/Is-it-possible-to-have-application-specific-properties-in-settings.xml--tf3363611s177.html#a9444655
>>> Sent from the Maven - Users mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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]
>>
>>
>>
>
>

--
View this message in context: 
http://www.nabble.com/Is-it-possible-to-have-application-specific-properties-in-settings.xml--tf3363611s177.html#a9466189
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
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]

Reply via email to