2013-03-27 2 views
1

Я новичок в Maven и Tycho, и я надеюсь, что я не задаю глупый вопрос. Спасибо за прочтение!!Создайте только необходимые плагины Eclipse RCP для плагина с Tycho

Я в большом проекте Eclipse RCP со структурой, как это:

-plugin 1

| -pom.xml

-plugin 2

| -pom. XML

-plugin 3

| -pom.xml

-plugin 4

| -pom.xml

-продуктовой 1

| -pom.xml

-продуктовой 2

| -pom.xml

-master

| -pom.xml

В моем случае для продукта 1 необходим плагин 1 и плагин 2, который должен быть создан раньше, а для продукта 2 требуется плагин 2, плагин 3 и плагин 4, которые должны быть созданы ранее.

Мастер pom.xml-файл является родительским для всех файлов плагина и продукта pom.xml. Когда я запускаю mvn clean install на master pom.xml, все продукты и плагины построены правильно.

Когда я бегу mvn clean install на pom.xml файл продукта 1, он принимает встроенные .jar-файлы плагина 1 и плагин 2. (продукт 2 аналоговых)

Вот мой вопрос. Есть ли возможность перестроить необходимые плагины только для одного продукта, не используя уже созданные .jar-файлы и не создавая «слишком много» плагинов?

В моем случае это означало бы, что я хочу запустить mvn clean install на продукт 1, и он должен построить также плагин 1 и 2 плагин, но не плагин 3-4, а не продукт 2.

Если это поможет вам, здесь приведены примеры pom.xml файлы моего проекта:

мастер pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 

    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>myGroupId</groupId> 
<artifactId>master</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<properties> 
    <tycho.version>0.17.0</tycho.version> 
</properties> 

<modules> 
    <module>../plugin1</module> 
    <module>../plugin2</module> 
    <module>../plugin3</module> 
    <module>../plugin4</module> 
    <module>../product1</module> 
    <module>../product2</module> 
</modules> 



<repositories> 
    <!-- configure p2 repository to resolve against --> 
    <repository> 
     <id>Repository1</id> 
     <layout>p2</layout> 
     <url>url-to-a-p2-site-on-my-server</url> 
    </repository> 
</repositories> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-maven-plugin</artifactId> 
      <version>${tycho.version}</version> 
      <extensions>true</extensions> 
     </plugin> 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>target-platform-configuration</artifactId> 
      <version>${tycho.version}</version> 
      <configuration> 
       <resolver>p2</resolver> 
       <pomDependencies>consider</pomDependencies> 
       <target> 
        <artifact> 
         <groupId>myGroupId</groupId> 
         <artifactId>myGroupId.target</artifactId> 
         <classifier>targetPlatform</classifier> 
        </artifact> 
       </target> 
       <environments> 
        <environment> 
         <os>macosx</os> 
         <ws>cocoa</ws> 
         <arch>x86_64</arch> 
        </environment> 
        <environment> 
         <os>linux</os> 
         <ws>gtk</ws> 
         <arch>x86</arch> 
        </environment> 
        <environment> 
         <os>linux</os> 
         <ws>gtk</ws> 
         <arch>x86_64</arch> 
        </environment> 
        <environment> 
         <os>win32</os> 
         <ws>win32</ws> 
         <arch>x86</arch> 
        </environment> 
        <environment> 
         <os>win32</os> 
         <ws>win32</ws> 
         <arch>x86_64</arch> 
        </environment> 
       </environments> 
       <ignoreTychoRepositories>false</ignoreTychoRepositories> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
    </project> 

plugin1 pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
    <project 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<modelVersion>4.0.0</modelVersion> 

<parent> 
    <artifactId>master</artifactId> 
    <groupId>myGroupId</groupId> 
    <version>0.0.1-SNAPSHOT</version> 
    <relativePath>../master/pom.xml</relativePath> 
</parent> 

<groupId>myGroupId</groupId> 
<artifactId>plugin1</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<packaging>eclipse-plugin</packaging> 
</project> 

product1 pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
    <project 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<modelVersion>4.0.0</modelVersion> 

<parent> 
    <artifactId>master</artifactId> 
    <groupId>myGroupId</groupId> 
    <version>0.0.1-SNAPSHOT</version> 
    <relativePath>../master/pom.xml</relativePath> 
</parent> 

<groupId>myGroupId</groupId> 
<artifactId>product1</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<packaging>eclipse-repository</packaging> 

<name>product 1 build</name> 
<build> 
    <plugins> 

     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-p2-director-plugin</artifactId> 
      <version>${tycho.version}</version> 
      <configuration> 
       <publishArtifacts>true</publishArtifacts> 
      </configuration> 
      <executions> 
       <execution> 
        <id>materialize-products</id> 
        <goals> 
         <goal>materialize-products</goal> 
        </goals> 
       </execution> 
      </executions> 

     </plugin> 
    </plugins> 
</build> 
    </project> 

Все остальные определения плагинов и продуктов являются аналоговыми.

Спасибо!

ответ

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