0

I want to create a build info file into the specific location of the project's target folder (especially in target/abc_project/META-INF folder) through maven-2.

Following is what I am doing in the pom.xml

<build>
    <finalName>abc_project</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
 <execution>
  <phase>package</phase>
  <id>buid-info-generator</id>
  <goals>
   <goal>exec</goal>
  </goals>
  <configuration>
  <executable>java</executable>
   <arguments>
    <argument>-jar</argument>
    <argument>xyz.jar</argument>
    <argument>target/abc_project/META-INF/info.txt</argument>
    <argument>date</argument>
    <argument>hg summary</argument>
   </arguments>
  </configuration>
 </execution>
</executions>

    </plugins>
</build>

while giving the phase other than install, deploy, I get the following error -

[INFO] Exception in thread "main" java.io.FileNotFoundException: target\abc_project\META-INF\info.txt (The system cannot find the path specified)
[INFO]  at java.io.FileOutputStream.open(Native Method)
[INFO]  at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
[INFO]  at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
[INFO]  at java.io.FileWriter.<init>(FileWriter.java:73)
[INFO]  at com.nbec.svn.build.info.BuildInfoGenerator.main(BuildInfoGenerator.java:30)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Result of cmd.exe /X /C "java -jar xyz.jar target/abc_project/META-INF/info.txt "date "hg summary"" execution is: '1'.

But strangely, the same code is working for 1 project and not for other 2 projects. Is there any alternative to obtain the same.

deejay
  • 575
  • 1
  • 8
  • 24
  • There is something strange with your project. Did you change defaults? From where is target\abc_project\META-INF\info.txt supposed to come from? – Pascal Thivent Sep 06 '10 at 20:16

1 Answers1

0

Actually the error report indicates that the directory target\abc_project\META-INF probably does not exist. Without more information I can only speculate. Maybe the plugin which create the abc_project\META-INF directory is called after the exec-maven-plugin.

Jcs
  • 13,279
  • 5
  • 53
  • 70
  • yeah.. thats true, that it is not creating the abc_project folder itself till that time, while using the phase other than install/deploy. I am not sure why it is so.. if anyone can tell me when does the full target folder gets created (with all the required dependent folders) in maven, then that will be greatful. – deejay Sep 06 '10 at 09:46
  • The project.build.directory (default: "target") and project.build.outputDirectory (default: "target/classes") are created during the compile phase. Did you change the project.build.outputDirectory property to "target\abc_project"? – Jcs Sep 06 '10 at 10:12