【问题标题】:Build only necessary Eclipse RCP plugins for a plugin with Tycho只为带有 Tycho 的插件构建必要的 Eclipse RCP 插件
【发布时间】:2013-04-18 06:25:04
【问题描述】:

我是 Maven 和 Tycho 的新手,我希望我不会问一个愚蠢的问题。感谢阅读!!

我在一个大型 Eclipse RCP 项目中,其结构如下:

-插件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 文件是所有插件和产品 pom.xml 文件的父级。当我在主 pom.xml 上运行 mvn clean install 时,所有产品和插件都正确构建。

当我在产品 1 的 pom.xml 文件上运行 mvn clean install 时,它会获取插件 1 和插件 2 的内置 .jar 文件。(产品 2 模拟)

这是我的问题。 是否有可能只为一种产品重建必要的插件而不使用已经构建的 .jar 文件并且不构建“太多”插件?

在我的情况下,这意味着我想在产品 1 上运行 mvn clean install,它还应该构建插件 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>

插件1 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>

所有其他插件和产品定义都是模拟的。

谢谢!

【问题讨论】:

    标签: java maven eclipse-plugin eclipse-rcp build-process


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多