2010-09-06 91 views
0

我想通過maven-2在項目目標文件夾的特定位置(特別是在target/abc_project/META-INF文件夾中)創建一個build info文件。如何從pom.xml執行jar

以下是我在做什麼在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> 

而不是install, deploy給予phase其他,我碰到下面的錯誤 -

[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'. 

但奇怪的是,相同的代碼正在爲1個項目工作,而不是其他2個項目。有沒有其他辦法可以獲得同樣的結果。

+0

你的項目有一些奇怪的東西。你改變了默認值嗎? target \ abc_project \ META-INF \ info.txt應該從哪裏來? – 2010-09-06 20:16:33

回答

0

其實錯誤報告表明目錄target\abc_project\META-INF可能不存在。沒有更多的信息,我只能推測。也許創建abc_project\META-INF目錄的插件在exec-maven-plugin之後被調用。

+0

是的..這是真的,它不是直到那時創建abc_project文件夾本身,而是使用安裝/部署以外的階段。我不知道爲什麼它是如此......如果有人能告訴我什麼時候在maven中創建完整的目標文件夾(具有所有必需的相關文件夾),那麼這將非常有用。 – deejay 2010-09-06 09:46:20

+0

在編譯階段創建project.build.directory(默認:「target」)和project.build.outputDirectory(默認值:「target/classes」)。您是否已將project.build.outputDirectory屬性更改爲「target \ abc_project」? – Jcs 2010-09-06 10:12:55