Reputation: 2633
I'm a newbee in apache Maven. When i try to read the values from the properties file, it's not picking the value. I already seen all the previously asked questions in SO. But no luck with that. This is my property file.
nameofmayil=mayilsamy
This is the pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.mayil</groupId>
<artifactId>mayil-app</artifactId>
<version>1.0.1</version>
<packaging>jar</packaging>
<name>mayil-app</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
<scm>
<connection>scm:svn:http://127.0.0.1/svn/my-project</connection>
<developerConnection>scm:svn:https://127.0.0.1/svn/my-project</developerConnection>
<tag>HEAD</tag>
<url>http://127.0.0.1/websvn/my-project</url>
</scm>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<!-- Associate the read-project-properties goal with the initialize phase, to read the properties file. -->
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/buildNumber.properties</file>
<file>${basedir}/mayil.properties</file>
</files>
<quite>false</quite>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo>Displaying value of properties</echo>
<echo>${nameofmayil}</echo>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
The property file is loaded properly, i checked with that.
Upvotes: 0
Views: 1363
Reputation: 14951
The POM shown has the properties-maven-plugin
execution bound to the initialize
phase, and the antrun plugin goal displaying the properties bound to the validate
phase. initialize
comes after validate
(per the Maven lifecycle docs) which is why you're not seeing the results you want. You may fix in a couple of ways:
properties-maven-plugin
goal to the validate
phase ORmaven-antrun-plugin
goal to the initialize
phaseBoth of the above have goals bound to the same phase. This is fine, as long as the goals are listed in the POM in the order you want them to execute. If you want them bound to distinct phases, perform both steps.
Upvotes: 2