I'll respond by saying there is no garaunteed order of operations with
resource copying (as well as other actions that take place within the same
build phase). Your pom states that both resources from development and
production should be considered when the env property is set to development.
(Incidentally you could more easily take a "-P development" switch on the
cmd line to activate the dev profile. I'd only suggest property activation
when you have something like an external script that will automatically set
the property. Otherwise it's slightly less work to call the profile
outright.) When considering resources from two locations there is no
garauntee that on set of resources will overwrite the other. Profiles aren't
meant to establish/imply fine grained execution order. What you really
should do is conditionally include your prod resources for only production
profiles. There is a much bigger problem of mixing dev and production
resources in a build. If there are common resources between the two then the
dir structure should be changed to reflect that.


mljv wrote:
> 
> sorry, i clicked send to early... so here is my full post:
> 
> Hi,
> 
> i am struggeling with profiles and resources. 
> 
> I have 
>   src/main/resources/application.properties
>   src/main/dev-resources/application.properties
> 
> my profiles in pom.xml
> 
>       <profiles>
>               <profile>
>                       <id>production</id>
>                       <activation>
>                               <activeByDefault>true</activeByDefault>
>                       </activation>
>                       <properties>
>                               <env>production</env>
>                       </properties>
>               </profile>
>               <profile>
>                       <id>development</id>
>                       <activation>
>                               <property>
>                                       <name>env</name>
>                                       <value>development</value>
>                               </property>
>                       </activation>
>                       <build>
>                               <resources>
>                                       <resource>
>                                               
> <directory>src/main/resources</directory>
> 
>                                               <!-- this exclude is needed, 
> why? -->
>                                               <excludes>
>                                                       
> <exclude>application.properties</exclude>
>                                               </excludes>
> 
>                                       </resource>
>                                       <resource>
>                                               
> <directory>src/main/development-resources</directory>
>                                       </resource>
>                               </resources>
>                       </build>
>               </profile>
>       </profiles>
> 
> then i do 
> $ mvn -Denv=development clean process-resources
> 
> and it shows me that my   src/main/dev-resources/application.properties
> was 
> copied to target/classes/
> 
> If i drop exclude i see  src/main/resources/application.properties in 
> target/classes
> 
> Why do i need to exclude it? It should be overwritten, shouldn't it?
> 
> kind regards,
> Janning
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Profiles-and-resources-tp15418940s177p15425995.html
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to