为什么没有在针对Windows工件的跨平台Tycho构建中配置更新repo URL?

时间:2013-04-19 09:24:14

标签: eclipse rcp tycho p2

我有一个在Mac OS X上运行的跨平台Tycho构建,可生成Windows,Mac和p2 repo输出。

通常一切都很好,除了Windows RCP NOT 配置了我的p2.inf addRepository 指令中的更新repo URL详细信息(所以p2更新失败了) - Mac OS X应用程序 DOES ...这看起来很可疑......为什么一个而不是另一个?!

这是一个任何人都可能遇到过的Tycho错误吗? (我目前正在使用Tycho 0.13.0,对于切换版本感到紧张.. )或者我是否需要明确的说明才能应用于Windows版本?

在这里包含一些POM可能会有所帮助......

这是产品项目中的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<artifactId>com.myapp.main.product</artifactId>

<packaging>eclipse-repository</packaging>

<name>my product</name>

<parent>
    <groupId>com.myapp</groupId>
    <artifactId>parent</artifactId>
    <version>1.9.0-SNAPSHOT</version>
    <relativePath>../com.myapp.parent</relativePath>
</parent>

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

<!-- SEE: http://dev.eclipse.org/mhonarc/lists/tycho-user/msg00362.html
     SEE: https://issues.sonatype.org/browse/TYCHO-300 -->

        <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/products/com.myapp.main.product/icons</outputDirectory>
              <resources>
                <resource>
                  <directory>icons</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
  </plugins>
</build>

<version>1.9.0-SNAPSHOT</version>
</project>

父母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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.myapp</groupId>
<artifactId>parent</artifactId>
<version>1.9.0-SNAPSHOT</version>

<packaging>pom</packaging>

<modules>
    <module>../com.myapp.doc</module>

    <module>../com.myapp.lots.of.plugins</module>

    <module>../com.myapp.main</module>
    <module>../com.myapp.main.nl</module>
    <module>../com.myapp.branding</module>
    <module>../com.myapp.branding.nl</module>

    <module>../com.myapp.feature.platform</module>
    <module>../com.myapp.feature.core</module>
    <module>../com.myapp.main.product</module>
</modules>

<properties>
    <tycho-version>0.13.0</tycho-version>
</properties>

<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>
                <environments>
                    <environment>
                         <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86</arch>
                    </environment>
                     <environment>
                        <os>macosx</os>
                        <ws>cocoa</ws>
                        <arch>x86</arch>
                    </environment>
                     <environment>
                        <os>macosx</os>
                        <ws>carbon</ws>
                        <arch>x86</arch>
                    </environment>
<!-- 64 bit platforms
                    <environment>
                        <os>win32</os>
                        <ws>win32</ws>
                        <arch>x86_64</arch>
                    </environment>
-->
                     <environment>
                        <os>macosx</os>
                        <ws>cocoa</ws>
                        <arch>x86_64</arch>
                    </environment>
                </environments>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>

    <!-- MacOS specific vm arguments for UI testing -->
    <profile>
        <id>osx</id>
        <activation>
            <property>
                <name>java.vendor.url</name>
                <value>http://www.apple.com/</value>
            </property>
        </activation>
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.tycho</groupId>
                        <artifactId>tycho-surefire-plugin</artifactId>
                        <version>${tycho-version}</version>
                        <configuration>
                            <appArgLine>-XstartOnFirstThread</appArgLine>
                        </configuration>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    </profile>

    <profile>
      <id>coverage</id>
        <activation>
            <property>
                <name>coverage</name>
            </property>
        </activation>
        <properties>
            <emma.session.out.file>${project.build.directory}/emma/${project.artifactId}.es</emma.session.out.file>
            <emma.filter>com.myapp.*</emma.filter>
            <eclemma.instrument.bundles>com.myapp.backup.tests,com.myapp.common.tests,com.myapp.model.tests</eclemma.instrument.bundles>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.5</version>
                    <executions>
                        <execution>
                            <id>attach-artifacts</id>
                            <phase>package</phase>
                            <goals>
                                 <goal>attach-artifact</goal>
                            </goals>
                            <configuration>
                                <artifacts>
                                    <artifact>
                                        <file>${emma.session.out.file}</file>
                                        <type>es</type>
                                    </artifact>
                                </artifacts>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.sonatype.tycho</groupId>
                    <artifactId>maven-osgi-test-plugin</artifactId>
                    <version>${tycho-version}</version>
<!--
                     <configuration>
                        <systemProperties combine.children="append">
                            <eclemma.help>true</eclemma.help>
                            <emma.session.out.file>${emma.session.out.file}</emma.session.out.file>
                            <emma.filter>${emma.filter}</emma.filter>
                            <eclemma.instrument.bundles>${eclemma.instrument.bundles}</eclemma.instrument.bundles>
                        </systemProperties>
                        <frameworkExtensions>
                            <frameworkExtension>
                                <groupId>org.eclemma.runtime.equinox</groupId>
                                <artifactId>org.eclemma.runtime.equinox</artifactId>
                                <version>1.1.0.200908261008</version>
                            </frameworkExtension>
                        </frameworkExtensions>
                    </configuration>
 -->
                     <configuration>
                        <skip>${skipFunctional}</skip>
                        <useUIHarness>true</useUIHarness>
                        <useUIThread>false</useUIThread>
                        <product>org.eclipse.sdk.ide</product>
                        <application>org.eclipse.ui.ide.workbench</application>
                        <argLine>-Xmx512M</argLine>
                        <systemProperties combine.children="append">
                            <emma.session.out.file>${emma.session.out.file}</emma.session.out.file>
                            <emma.filter>${emma.filter}</emma.filter>
                            <eclemma.instrument.bundles>${emma.instrument.bundles}</eclemma.instrument.bundles>
                        </systemProperties>
                        <frameworkExtensions>
                            <frameworkExtension>
                                <groupId>org.eclemma.runtime.equinox</groupId>
                                <artifactId>org.eclemma.runtime.equinox</artifactId>
                                <version>1.1.0.200908261008</version>
                            </frameworkExtension>
                        </frameworkExtensions>
                        <application>org.eclipse.ui.ide.workbench</application>
                        <dependencies>
                            <dependency>
                                <type>p2-installable-unit</type>
                                <artifactId>org.eclipse.sdk.ide</artifactId>
                                <version>0.0.0</version>
                            </dependency>
                        </dependencies>
                    </configuration>

                 </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

<repositories>
    <repository>
        <id>helios-platform</id>
        <layout>p2</layout>
        <url>${project.baseUri}../../../../targetplatform/org.eclipse.platform-3.7.1</url>
    </repository>
    <repository>
        <id>myapp-targetplatform</id>
        <layout>p2</layout>
        <url>${project.baseUri}../../../../targetplatform/myapp-targetplatform</url>
    </repository>
</repositories>

</project>

1 个答案:

答案 0 :(得分:0)

将Tycho升级到0.17.0,但事实证明问题确实与Tycho 没什么 - 我意识到我已经调整了Windows上的位置属性,试图准备支持安装到c:\ Program Files with XP with UAC:

-Dosgi.instance.area=@user.home/Application Data/myapp
-Dosgi.configuration.area=@user.home/Application Data/myapp/.configuration

然而,将osgi.configuration.area移出安装文件夹(默认为c:\ myapp:P)是导致我的p2问题的原因。