2016-01-04 2 views
3

В Maven, когда я использую <packaging>jar</packaging>, я могу видеть фазы по умолчанию определены вКак я могу определить фазы для конкретного типа упаковки

~/.m2/repository/org/apache/maven/maven-core/3.0.3/maven-core-3.0.3.jar/META-INF/plexus/components.xml 

Но когда я использую <packaging>kar</packaging> для создания проекта Apache Karaf, как может Я знаю фазы для типа упаковки kar, который не определен в components.xml?

ответ

0

Это определено внутри karaf-maven-plugin. Этот плагин объявляет свой собственный components.xml.

Принимая код from GitHub, это жизненный цикл kar упаковки:

<component> 
    <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role> 
    <role-hint>kar</role-hint> 
    <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation> 
    <configuration> 
     <lifecycles> 
      <lifecycle> 
       <id>default</id> 
       <phases> 
        <process-resources> 
         org.apache.maven.plugins:maven-resources-plugin:resources 
        </process-resources> 
        <compile> 
         org.apache.karaf.tooling:karaf-maven-plugin:features-generate-descriptor 
        </compile> 
        <package> 
         org.apache.karaf.tooling:karaf-maven-plugin:kar 
        </package> 
        <install> 
         org.apache.maven.plugins:maven-install-plugin:install 
        </install> 
        <deploy> 
         org.apache.maven.plugins:maven-deploy-plugin:deploy 
        </deploy> 
       </phases> 
      </lifecycle> 
     </lifecycles> 
    </configuration> 
</component> 

Так что это вызывает:

  • process-resources с org.apache.maven.plugins:maven-resources-plugin:resources
  • compile с org.apache.karaf.tooling:karaf-maven-plugin:features-generate-descriptor
  • package с org.apache.karaf.tooling:karaf-maven-plugin:kar
  • install с org.apache.maven.plugins:maven-install-plugin:install
  • deploy с org.apache.maven.plugins:maven-deploy-plugin:deploy

Если вы хотите, чтобы взглянуть на него внутри м2 репо, вы должны смотреть внутрь (предположим, что вы используете версию 4.0.3)

~/.m2/repository/org/apache/karaf/tooling/4.0.3/karaf-maven-plugin-4.0.3.jar/META-INF/plexus/components.xml 
0

Посмотрите на META-INF/plexus/components.xml в karaf-maven-plugin.jar.

<component> 
     <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role> 
     <role-hint>kar</role-hint> 
     <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation> 
     <configuration> 
      <lifecycles> 
       <lifecycle> 
        <id>default</id> 
        <phases> 
         <process-resources> 
          org.apache.maven.plugins:maven-resources-plugin:resources 
         </process-resources> 
         <compile> 
          org.apache.karaf.tooling:karaf-maven-plugin:features-generate-descriptor 
         </compile> 
         <package> 
          org.apache.karaf.tooling:karaf-maven-plugin:kar 
         </package> 
         <install> 
          org.apache.maven.plugins:maven-install-plugin:install 
         </install> 
         <deploy> 
          org.apache.maven.plugins:maven-deploy-plugin:deploy 
         </deploy> 
        </phases> 
       </lifecycle> 
      </lifecycles> 
     </configuration> 
    </component> 

Роль org.apache.maven.lifecycle.mapping.LifecycleMapping определяет конфигурацию жизненного цикла. role-hint - тип упаковки, который вы используете в своем пом.

Смежные вопросы