How to create an Eclipse plugin project with an Eclipse Birt dependency?

I have a set of Maven projects that I would like to migrate to SBT.

The only thing stopping me from doing this is the project, which is an Eclipse plugin that has dependencies on the Eclipse Birt.

Tycho plugin for Maven, handles all dependencies. This tool is not available in SBT. I found the sbt-tycho plugin for SBT, but it looks like unscientific (3 years without activity).

Perhaps I can create my Eclipse plugin with Maven, and the rest of the projects with SBT. But I don’t know if this is possible.

Another alternative is to use Gradle with the wuff plugin .

Related questions in Stackoverflow:

But I prefer SBT over Maven or Gradle, so as not to introduce another language besides Scala.

Is it possible to have all projects in SBT, except for those that use Tycho (Eclipse plugin) ?. The Eclipse plug-in project is dependent on the main project and rarely changes.

Any ideas?

Update 1 : additional information. Eclipse plugins use p2 repository to handle dependencies instead of the standard Maven repository used for Gradle, Maven, Ivy and SBT. That is why special tools are needed. My custom Eclipse plugin has over 100 indirect p2 dependencies.

Update 2

pom.xml of my Eclipse plugin:

<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>myCompany</groupId>
  <artifactId>myPlugin</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>
  <properties>
    <tycho.version>0.19.0</tycho.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <repositories>
    <repository>
      <id>eclipse</id>
      <url>http://download.eclipse.org/releases/kepler</url>
      <layout>p2</layout>
    </repository>
    <repository>
      <id>babel</id>
      <url>http://download.eclipse.org/technology/babel/update-site/R0.11.1/kepler</url>
      <layout>p2</layout>
    </repository>
    <repository>
      <id>logback</id>
      <url>http://logback.qos.ch/p2/</url>
      <layout>p2</layout>
    </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>
      <environments>
              <environment>
                <os>linux</os>
                <ws>gtk</ws>
                <arch>x86_64</arch>
              </environment>
              <environment>
                <os>win32</os>
                <ws>win32</ws>
                <arch>x86</arch>
              </environment>
      </environments>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
+4
2

, Eclipse OSGi Ivy. , sbt ( , ).

Ivy sbt, externalIvySettings():

, Maven (pom.xml) Ivy (ivy.xml ivysettings.xml). .

Ivy ( ) externalIvySettings Ivy ( ) externalIvyFile.

, , , . externalIvySettings / externalIvyFile build.sbt ivy.xml Eclipse Ivy Eclipse updateite resolver.

build.sbt:

externalIvySettings()

libraryDependencies += "bundle" % "org.eclipse.swt.cocoa.macosx.x86_64" % "3.100.1.v4234e"

ivysettings.xml ( build.sbt):

<ivysettings>
  <settings defaultResolver="chain"/>
  <resolvers>
    <chain name="chain">
      <ibiblio name="central" m2compatible="true"/>
      <updatesite name="eclipse-juno" url="http://download.eclipse.org/releases/juno" />
    </chain>
  </resolvers>
</ivysettings>

update package s:

> update
[info] Updating {file:/Users/jacek/sandbox/eclipse-p2/}eclipse-p2...
:: loading settings :: file = /Users/jacek/sandbox/eclipse-p2/ivysettings.xml
[warn]  module not found: package#org.eclipse.swt.accessibility2;[0.0.0,)
[warn] ==== central: tried
[warn]   http://repo1.maven.org/maven2/package/org.eclipse.swt.accessibility2/[revision]/org.eclipse.swt.accessibility2-[revision].pom
[warn]   -- artifact package#org.eclipse.swt.accessibility2;[0.0.0,)!org.eclipse.swt.accessibility2.jar:
[warn]   http://repo1.maven.org/maven2/package/org.eclipse.swt.accessibility2/[revision]/org.eclipse.swt.accessibility2-[revision].jar
[warn] ==== eclipse-juno: tried
[warn]  module not found: package#org.mozilla.xpcom;[0.0.0,)
[warn] ==== central: tried
[warn]   http://repo1.maven.org/maven2/package/org.mozilla.xpcom/[revision]/org.mozilla.xpcom-[revision].pom
[warn]   -- artifact package#org.mozilla.xpcom;[0.0.0,)!org.mozilla.xpcom.jar:
[warn]   http://repo1.maven.org/maven2/package/org.mozilla.xpcom/[revision]/org.mozilla.xpcom-[revision].jar
[warn] ==== eclipse-juno: tried
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: package#org.eclipse.swt.accessibility2;[0.0.0,): not found
[warn]  :: package#org.mozilla.xpcom;[0.0.0,): not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Unresolved dependencies path:
[warn]      package:org.eclipse.swt.accessibility2:[0.0.0,)
[warn]        +- bundle:org.eclipse.swt:[3.0.0,4.0.0)
[warn]        +- bundle:org.eclipse.swt.cocoa.macosx.x86_64:3.100.1.v4234e (/Users/jacek/sandbox/eclipse-p2/build.sbt#L3-4)
[warn]        +- default:eclipse-p2_2.10:0.1-SNAPSHOT
[warn]      package:org.mozilla.xpcom:[0.0.0,)
[warn]        +- bundle:org.eclipse.swt:[3.0.0,4.0.0)
[warn]        +- bundle:org.eclipse.swt.cocoa.macosx.x86_64:3.100.1.v4234e (/Users/jacek/sandbox/eclipse-p2/build.sbt#L3-4)
[warn]        +- default:eclipse-p2_2.10:0.1-SNAPSHOT
+2

( ) - sbt-osgi-manager, . .

.

UPDATE: .

Maven Birt. Birt, RCP.

+1

All Articles