私はMavenとTychoを初めて使用しますが、ばかげた質問をしないことを願っています。読んでくれてありがとう!!
私は次のような構造の大きなEclipseRCPプロジェクトに参加しています。
-プラグイン1
| -pom.xml
-プラグイン2
| -pom.xml
-プラグイン3
| -pom.xml
-プラグイン4
| -pom.xml
-製品1
| -pom.xml
-製品2
| -pom.xml
-主人
| -pom.xml
私の場合、製品1にはプラグイン1とプラグイン2を事前にビルドする必要があり、製品2にはプラグイン2、プラグイン3、プラグイン4を事前にビルドする必要があります。
マスターpom.xml-fileは、すべてのプラグインおよび製品pom.xml-filesの親です。マスターpom.xmlで実行するmvn clean install
と、すべての製品とプラグインが正しくビルドされます。
製品1のpom.xmlファイルで実行するmvn clean install
と、プラグイン1とプラグイン2のビルドされた.jarファイルが使用されます(製品2アナログ)
これが私の質問です。すでにビルドされている.jarファイルを使用せずに、また「多すぎる」プラグインをビルドせずに、1つの製品にのみ必要なプラグインを再構築する可能性はありますか?
私の場合、これは、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>
他のすべてのプラグインと製品の定義はアナログです。
ありがとうございました!