3

私はEclipse環境をセットアップしてバンドルを開発し(maven-bundle-plugin-bndを使用)、Eclipseから分点をバンドルする実行およびデバッグを試みています

org.apache.felix maven-bundle-plugin でサンプル バンドルを作成し、Eclipse Equinox からそのバンドルをインストールして開始できます
が、毎回 "install file:C:\path\bundle1.jar","install file :C:\path\bundle2.jar" これは痛みを引き起こします。実行構成を検索しましたが、maven プロジェクトではなく、ワークスペースのプロジェクトのみをインストールして開始 (プラグイン) します。

私が行ったことは、maven プロジェクトを作成し、依存関係 (bundle1、bundle2 など) を追加し、maven-dependency-plugin を追加して、依存するすべてのバンドルを 1 つのフォルダーにコピーすることです (別の問題は、分点が "_" 区切り文字を使用してバンドルのバージョンを決定することですが、 maven は区切り記号として「-」を使用します) スタンドアロンの Equinox アプリケーションでバージョンを削除しない場合、config.ini ファイルでバンドルのバージョンを指定する必要がありますが、それは望ましくありません。この問題を解決する適切な方法はありますか?

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${bundleDirectory}</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>true</overWriteSnapshots>
              <stripVersion>true</stripVersion>
            </configuration>
          </execution>
        </executions>
      </plugin>  

要約すると、フォルダーにバンドルがあり、これは org.apache.felix maven-bundle-plugin で作成されています。Eclipse からそれらを実行してデバッグするにはどうすればよいですか?

4

2 に答える 2

1

これが「適切な」解決策であるとは言えませんが、それはあなたにとってはうまくいくかもしれません。

antrunプラグインを使用して依存関係を変更し、最後のハイフンをアンダースコアに置き換えることができるため、依存関係プラグインでバージョンを削除する必要はありません。

私の正規表現はさびていますが、少しテストすると、次の構成は、bundleDependencyディレクトリ内のファイルに必要な名前の変更を適用するように見えます。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <id>copy-dependencies</id>
      <phase>package</phase>
      <goals>
        <goal>copy-dependencies</goal>
      </goals>
      <configuration>
        <outputDirectory>${bundleDirectory}</outputDirectory>
        <overWriteReleases>false</overWriteReleases>
        <overWriteSnapshots>true</overWriteSnapshots>
      </configuration>
    </execution>
  </executions>
</plugin>
<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.3</version>
  <executions>
    <execution>
      <phase>package</phase>
      <configuration>
        <tasks>
          <!-- move within same directory is preferred method for a rename-->
          <move todir="${bundleDirectory}">
            <fileset dir="${bundleDirectory}"/>
            <mapper type="regexp" from="([a-zA-Z0-9\.-]+)(-)([0-9\.]+.jar)" 
              to="\1_\3"/>
          </move>
        </tasks>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
   <dependency>
     <groupId>ant</groupId>
     <artifactId>ant-nodeps</artifactId>
     <version>1.6.5</version>
   </dependency>
  </dependencies>
</plugin>
于 2009-09-13T14:11:12.280 に答える
0

auto-builder ( http://code.google.com/p/auto-builder ) というツールを作成しました。PDE ベースのプロジェクトをイントロスペクトし、Ant ビルド ファイルを生成します。依存関係とそのすべてのジャズに対する推移的閉鎖をサポートします。

http://empty-set.net/?p=9という記事を投稿しました。これを書いたのは、私が遊んだ Maven ツールが、PDE と統合されたときに「うまく機能しなかった」からです。基本的に、私は PDE でコーディングを行い、ハドソン ベースの CI をその間に何の手間もかけずに作成したいと考えていました。

Ant ファイルを生成すると、宣言型ビルド ツールのすべての利点が得られるので便利ですが、Ant ファイルが何を行っているかの手続き的な説明が必要になります。

テストする PDE ベースのプロジェクトをさらに探しています。いくつかの RFC-0112 Bundle リポジトリがあり、依存関係をダウンロードするためのコードがいくつかあります。誰かが興味を持っている場合は、依存関係のダウンロードを自動ビルダーと統合できます。

于 2011-03-06T17:46:41.527 に答える