Why is update repo URL not configured on cross platform Tycho build for Windows artifact?

StackOverflow https://stackoverflow.com/questions/16101372

  •  04-04-2022
  •  | 
  •  

문제

I have a cross-platform Tycho build running on Mac OS X that produces Windows, Mac and a p2 repo outputs.

Generally all is fine except that the Windows RCP does NOT get configured with the update repo URL details from my p2.inf addRepository instructions (and so p2 update fails) - it DOES for the Mac OS X app... which seems suspicious... why one and not the other?!

Is this a Tycho bug anyone might've come across? (I'm currently using Tycho 0.13.0, nervous about switching versions..) Or do I need explicit instructions for this to get applied to the Windows build?

It'll probably help to include some POMs here...

Here's the POM from the product project:

<?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>

And the parent 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>
도움이 되었습니까?

해결책

Upgraded Tycho to 0.17.0 but it turns out the issue indeed has nothing to do with Tycho - I realized I've tweaked the location properties on Windows in an attempt to prepare to support installation into c:\Program Files post-XP with UAC:

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

However moving the osgi.configuration.area out of the installation folder (which defaults to c:\myapp :P) is what causes my p2 problem.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top