2013-03-19 5 views
2

Возможно ли, что я использую mvn deploy для одного родительского pom? Этот файл pom.xml станет родительским pom всех моих проектов. Возможно ли для меня развернуть только этот файл pom.xml и никакого другого артефакта?Обширный родительский pom

Если я использую это в качестве моей компании, то я должен включать тег модуля.

<?xml version="1.0" encoding="UTF-8"?> 
<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>onestopspot</groupId> 
    <artifactId>parent</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>OneStopSpot - Parent</name> 
    <description>Android application for OneStopspot</description> 
    <distributionManagement> 
     <repository> 
      <id>confiz-repo</id> 
      <url>http://10.10.10.230:8081/nexus/content/repositories/snapshots/</url> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
       <updatePolicy>always</updatePolicy> 
      </snapshots> 
     </repository> 
    </distributionManagement> 
    <dependencyManagement> 
     <dependencies> 
      <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>4.1.1.4</version> 
     <scope>provided</scope> 
     </dependency> 
      <dependency> 
       <groupId>com.google.android</groupId> 
       <artifactId>android-test</artifactId> 
       <version>2.3.3</version> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 
    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
        <artifactId>android-maven-plugin</artifactId> 
        <version>3.5.1</version> 
        <configuration> 
         <sdk> 
          <platform>10</platform> 
         </sdk> 
         <undeployBeforeDeploy>true</undeployBeforeDeploy> 
        </configuration> 
        <extensions>true</extensions> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
    <modules> 
     <module>api_library</module> 
     <module>instrumentation</module> 
    </modules> 
</project> 

ответ

3

Да, на самом деле это стандартная практика уменьшения количества шаблонов в проектных POM.

Для получения дополнительной информации о родительском РОМЕ: http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-project-relationships.html#pom-relationships-sect-project-inheritance

И для использования POM только проектов, чтобы шаблонные из РОМА проекта: http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html

0

Да, это можно сделать, это обычная практика. Тип packaging должен быть установлен в pom в этом случае:

<packaging>pom</packaging> 

проект с типом pom не требует src или test каталога, просто обычный файл П достаточно.

Я рекомендую вам использовать Maven плагин Release выпустить и развернуть родительский POM файл: http://maven.apache.org/maven-release/maven-release-plugin/

+0

Родительский файл pom обычно не содержит никаких модулей, это всего лишь файл pom. Не путайте родительский файл pom с корневым помпом многомодульного проекта, они не обязательно должны быть одинаковыми. Особенно, когда вы пытаетесь создать родительскую поместью всей компании. – nwinkler

1

Да уверен, что это возможно. Просто определите свою упаковку как pom, и она будет работать.

Помните о наследовании groupId и версии. Если вы не хотите наследовать это, как в многомодовом проекте, вам просто нужно переопределить его.

Вот пример:

Компании широко родительский П:

<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>de.mycompany.parent</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 


</project> 

Мультиконтроллер проект родительского П:

<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> 
    <parent> 
     <groupId>de.mycompany.parent</groupId> 
     <artifactId>parent-pom</artifactId> 
     <version>1.0</version> 
    </parent> 
    <groupId>my-overridden-groupId</groupId> 
    <artifactId>my-overridden-artifactId</artifactId> 
    <version>1.1</version> 
    <packaging>pom</packaging> 

    <modules> 
     <module>myOtherModule</module> 
    </modules> 

</project> 

После этого вы можете пойти один и сделать модули с п родителями выше

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