Dave,
Thanks a lot for your detailed explaination. I will try this out and let you
know.

one last question. If i want to update the property files, will my jar file
picksup the updates automatically or do i need to build it again?

Thanks,
Sundar

David Weintraub wrote:
> 
> There are two issues I addressed in my previous email:
> 
> Issue #1: How do you prevent those properties files from being
> packaged inside your jarfile, and Issue #2: How to make those
> properties files available as a release product.
> 
> Let's start with Issue #1: Preventing your jar file from containing
> those properties files. I gave you two recommendations:
> 
> Recommendation #1) Remove those properties files from your resources
> directory, and put them in another directory under src/main. I
> recommended calling it src/main/properties, but someone else wrote in
> and said the standard is src/main/filters (although it really isn't a
> resource filter).
> 
> This way, the standard Maven behavior will not copy those properties
> files into your jar because those properties files are not in your
> resources directory. It's simple and easy to implement.
> 
> Recommendation #2).Although the preferred way of preventing the
> properties files from being included inside your jar is to put them
> into another directory, there might be reasons beyond your control why
> this isn't possible. Maybe that's the way management has decreed, and
> you can't get them to change their mind. Maybe your developers have
> already setup their Eclipse projects and will complain bitterly if you
> try to change them.
> 
> Fortunately, there is a way in Maven to handle this. You can use
> filtering to skip over your properties files when Maven is copying in
> all the other files in your resources directory into your jar. Notice
> that this still does copy almost all of the files in your resources
> folder into your jar. All it merely does is define what you want
> copied or don't want copied to your jar file.
> 
> I gave you a link that explains exactly how to do this:
> <http://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html>.
> 
> Now, let's talk about Issue #2: Distributing those properties files.
> 
> Normally in Maven, you are packaging a jar file or a warfile or an ear
> file for distribution, and this is placed into your Maven repository
> when you deploy it. However, there are times you also need to
> distribute other files with your jar or war. For example, javadocs,
> source files, or even properties files.
> 
> To do this, you use the assemblies plugin. This involves defining an
> assembly file which basically tells Maven how to package your files.
> This is completely up to you. You could create a zipfile or a tarball
> or a compressed tarball containing your properties files along with
> your jar file, or maybe you just want the properties files zipped up
> (or tarred up) as their own package.
> 
> You explain to Maven in an assembly file stored in src/main/assembly
> how to do the packaging. I gave you an example I used in my previous
> email. You have almost free reign in defining this packaging to suit
> your own needs.
> 
> Once you create an assembly file, you need to modify your pom to know
> about the assembly file (or files: You can have more than one). Again,
> I gave you an example from my own pom.xml. This goes into the
> <plugins> section of your pom.xml:
> 
> <plugin>
>     <groupId>org.apache.maven.plugins</groupId>
>      <artifactId>maven-assembly-plugin</artifactId>
>      <version>2.2-beta-3</version>
>      <configuration>
>          <descriptors>
>              <descriptor>src/main/assemblies/bin.xml</descriptor>
>           </descriptors>
>      </configuration>
>         <!-- Possible Execution Definition -->
> </plugin>
> 
> Now, when you do:
> 
>     $ mvn assembly:assembly
> 
> Maven will build your "assembly" which is the package that contains
> the properties files.
> 
> Of course, if you don' want to do this separate step, but want the
> assembly to be built when someone does:
> 
>     $ mvn package
> 
> you need to add a few more lines into the pom.xml to tell Maven to
> build the assemblies in the "package" phase of the life cycle. To do
> this, replace the commend line above:
> 
>      <!-- Possible Execution Definition -->
> 
> with this:
> 
> <executions>
>     <execution>
>           <phase>package</phase>
>           <goals>
>                <goal>single</goal>
>           </goals>
>      </execution>
> </executions>
> 
> This will execute the assembly:single stage in the lifecycle "package"
> phase.
> 
> Now, when you do:
> 
>     $ mvn package
> 
> Both the jar file (without the properties) and a zip or tar package
> containing the properties will be placed in the target directory.
> 
> On Fri, Jun 26, 2009 at 12:52 PM, sundar
> varadarajan<[email protected]> wrote:
>> Hi Dave,
>>
>> Thanks for your reply. I m not trying to place resources folder outside
>> the
>> jar. I m trying to place the properties file that reside in resources
>> folder
>> outside the jar so that my application can pickup. What should i modify
>> in
>> my pom.xml?
>>
>> Thanks,
>> Sundar
>>
>>
>> On 6/25/09, sundar varadarajan <[email protected]> wrote:
>>>
>>> Hello,
>>>
>>> I m new to Maven and I m trying to place property and config.xml files
>>> outside the Jar files. Here is my current directory
>>>
>>> Src
>>>  main
>>>   java
>>>   resources
>>> test
>>>  java
>>>   resources
>>>
>>> under java, i have all the java class files and in resources folder i
>>> have
>>> the properties and springbatch xml files.
>>>
>>> when i package the application, the property files which are under
>>> src/main/resources is also getting included. I need to place this
>>> outside
>>> the jar file so that the application can pickup when ever i make any
>>> changes
>>> to the property. currently i need to package again whenever a small
>>> change
>>> is made.
>>>
>>> please help.
>>>
>>> Thanks,
>>> Sundar
>>>
>>
> 
> 
> 
> -- 
> David Weintraub
> [email protected]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Maven---Property-files-Question-tp24214839p24361473.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