2013-04-10 89 views
1

我有一個多模塊maven項目。在父項上構建POM應構建所有子模塊,並最終構建一個準備可執行jar的子模塊。這個最後的模塊包含一個運行可執行文件的ant腳本,並且在從父文件運行時不起作用,但當孩子的POM獨立運行時將起作用。我認爲這個問題是一個Maven類路徑。Ant構建失敗作爲多模塊maven構建的一部分

的POM的antrun部分是:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <!-- Clean execution is here--> 

       <execution> 
        <id>compile</id> 
        <phase>package</phase> 
        <configuration> 
         <target> 
          <!-- I have tried commenting out the following 4 lines but this does not work.--> 
          <property name="compile_classpath" refid="maven.compile.classpath" /> 
          <property name="runtime_classpath" refid="maven.runtime.classpath" /> 
          <property name="test_classpath" refid="maven.test.classpath" /> 
          <property name="plugin_classpath" refid="maven.plugin.classpath" /> 
          <property name="buildConfig" value="${buildConfig}" /> 
          <property name="buildversion" value="${currentVersion}" /> 
          <ant antfile="${basedir}/ANT FILE NAME.xml"> 
           <target name="all" /> 
          </ant> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

Ant腳本包含線路:

<target name="generate.scripts" depends="" description="generate scripts"> 
    <mkdir dir="${distdir.product}" /> 
    <mkdir dir="${distdir.product}/bin" /> 
    <exec executable="bin/start.bat" dir="." failonerror="true"> 
     <arg line="-server -createscript ${distdir.product}/bin/startserver.bat" /> 
    </exec> 

而失敗:

Cannot run program "bin\start.bat" (in directory "CORRECT_DIRECTORY"): CreateProcess error=2, The system cannot find the file specified 

任何想法?

回答

1

嘗試用以下EXEC版本:

<exec executable="cmd" dir="${basedir}/bin" failonerror="true"> 
    <arg value="/c" /> 
    <arg value="start.bat" /> 
    <arg value="-server" /> 
    <arg value="-createscript" /> 
    <arg value="${distdir.product}/bin/startserver.bat" /> 
</exec> 
+0

現在失敗的一個獨立的構建也。 「exec returned:1」 我會在命令行中給它一個提示,看看明天會出現什麼錯誤。 – kayln12 2013-04-10 16:54:06

+0

確保'dir =「。」'是正確的。似乎有點奇怪。會不會是:'dir =「$ {basedir}」'? – Farid 2013-04-10 17:38:40

+0

以下工作: \t \t \t \t \t \t \t \t \t \t \t \t – kayln12 2013-04-11 13:11:09