2013-11-22 80 views
0

我是一位與maven合作的新手。 我編譯了一個應用程序,使用Maven插件來實現編譯目標。 當我執行:mvn compile我看到這個。maven打電話的地方在哪裏?

[[email protected] userAPP]$ mvn compile 
make -C ./configure install 
make[1]:Entering directory `directory path' 
perl /filepath/file.pl O.linux-x86_64 ../.. 
mkdir O.Common 
make -C O.linux-x86_64 -f ../Makefile TOP=../.. T_A=linux-x86_64 install 
make[2]: Entering directory `directory path´ 
perl /filepath2/file2.pl 
... 

我的問題是:

哪裏Maven的呼叫做什麼呢?

因爲查看mvn二進制文件,它會調用java,編譯後的mojo會創建一個擴展到AbstractMojo的對象。但是叫什麼名字?我的項目有很多makefile。 正如我所說我是新手,所以如果一些信息混淆或需要其他信息,請告訴我。 感謝您的幫助。 抱歉我的英語,但它不是我的母語。

編輯:這是我的pom.xml。

<!-- 

Project  : My Project 

Description : Project description file for App 

Authors  : This file was generated by 


--> 
<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/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>mygroupid</groupId> 
<artifactId>TEST</artifactId> 
<packaging>java</packaging> 
<version>2.0.0</version> 
<name>TEST module</name> 
<description>TEST module</description> 


<!-- project properties --> 
<properties> 
    <unit.type>module</unit.type> 
</properties> 

<!-- parent pom.xml --> 
<parent> 
    <groupId>org.mycompany</groupId> 
    <artifactId>maven-mycompany-settings</artifactId> 
    <version>2.2.0</version> 
</parent> 

<!-- unit owner and developers --> 
<developers> 
    <developer> 
     <id>developer</id> 
     <roles> 
      <role>unit owner</role> 
     </roles> 
    </developer> 
</developers> 

<!-- configuration of how the project is built --> 
<build> 
    <!-- default phase is compile --> 
    <defaultGoal>compile</defaultGoal> 
    <!-- this command is executed if you just write 'mvn' --> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-mycompany-plugin</artifactId> 
      <extensions>true</extensions> 
      <configuration> 
       <packaging> 
        <!--"some packaging config"--> 
       </packaging> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

在pom.xml中尋找負責執行令應該是compileMojo的魔力。但是我在哪裏可以找到調用make的代碼。因爲在../mojos/build/CompileMojo.java中沒有任何調用。可以執行MOJO()方法負責調用make?

+5

look in'pom.xml' – artbristol

+2

你應該在這裏發佈你的pom.xml,然後我們可以幫助你。 – Chandranshu

+1

我如何展示maven的工作原理是maven在生命週期的不同階段執行mojos,並且make不是直接由maven執行,而是由mojos之一執行。如果你發佈你的pom文件的內容,我們可以很容易地指出哪一個負責執行make – user902383

回答

1

Maven是一個編排許多不同的插件來構建的東西的框架。

在你的情況下,其中一個插件叫make

由於Maven會記錄它運行的插件,所以您只需再次啓用日誌輸出即可。出於某種原因,您調用mvn不會打印任何內容。你需要弄清楚爲什麼。在$MVN_OPTS~/.mavenrc中查找命令行選項-q