2011-01-28 13 views
9

現在、IBM Rational Application Development(IBM Eclipseディストリビューション)をポートレット開発に使用していて、Maven統合に関する小さな問題があります。ここで 依存関係を追加するときにMavenをコピーするには

状況だ:

1)IBM RADは、それ自体(RUN/DEBUG)。この場合

内から直接ポートレットを展開する能力を持って、私はMavenのは全くWARを生成し使用していませんよIBM RADは自動的にWARを作成してIBM WebSphere Portalにプッシュするように思われるからです。これまでのところ大きな違いはありません。

2)Mavenの依存関係は、WebContent/WEB-INF/libディレクトリにコピーされません

IBMは独自のディレクトリ構造を有する:WebContentを/ WEB-INFとのWebContent/META-INFを。新しい依存関係を含めるようにpom.xmlを更新した場合、それらのJARSはWebContent/WEB-INF/libディレクトリにコピーされません。したがって、ポートレットを実行/デバッグする場合、これらのライブラリは含まれません。

質問:

としてすぐに私はのpom.xmlを更新としてのWebContent/WEB-INF/libフォルダに自動的に新しいJARをコピーする方法はありますか? (あれば、これはどのライフサイクルですか?)

質問1には完璧な解決策がない場合、この手順が「mvn install」のコンパイル/ゴールに含まれているかどうかは気にしません。

antタスクを使用しないでください。存在する場合は、maven独自のコピーユーティリティを使用することをお勧めします。

WebSphere Portlet開発用にMavenとIBM RADを統合する方法をお持ちの方は、自由に回答を追加してください。

おかげ

+0

これがIBM RADの場合は動作しますが、Eclipse WTPの場合は、プロジェクトのプロパティからデプロイメントアセンブリの部分を定義することはできません。 –

答えて

2

ここで私は古いRADプロジェクトの外に選んだのMaven 2のpom.xmlスケルトンです:RADが作成したよう

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>foo</groupId> 
    <artifactId>fooproject</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <properties> 
    <project.build.sourceEncoding>US-ASCII</project.build.sourceEncoding> 
    </properties> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <finalName>${project.artifactId}-${project.version}</finalName> 
    <resources> 
     <resource> 
     <directory>src</directory> 
     <includes><include>**/*.properties</include></includes> 
     <filtering>true</filtering> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.1</version> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.1-beta-1</version> 
     <configuration> 
      <webappDirectory>${project.basedir}/WebContent</webappDirectory> 
      <warSourceDirectory>${project.basedir}/WebContent</warSourceDirectory> 
      <webXml>${project.basedir}/WebContent/WEB-INF/web.xml</webXml> 
      <packagingIncludes>**/*.properties,**/*.jsp,**/*.jar,**/*.class,theme/**/*,images/**/*,**/*.xml,**/*.swf,**/*.tld,**/*.txt</packagingIncludes> 
      <archive> 
      <manifest> 
       <addClasspath>true</addClasspath> 
      </manifest> 
      </archive> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <!-- compile classpath --> 
    </dependencies> 
</project> 

これは、ディレクトリ構造に適用されたが(バージョン7.5、ポータルをターゲットWAS 7の6.5.x)。これを行う唯一の方法ではありません、私はポンを改善することができると確信していますが、その目的を果たしました。必要に応じて依存関係を追加します。

+0

ありがとう。魅力のように働きます。 – xandross

1

MavenとRADを統合するのと同じ質問と問題がありました。私はGorkemさんのコメントにとして、M2eをしてRAD 8を使用して、自動的にWebSphere Portalの7

まず用/デバッグポートレットをデプロイしようとしている:

私はわからない、これはIBM RADのためではなくて動作するかどうかEclipse WTPを使用すると、プロジェクトのプロパティからデプロイメントアセンブリを定義できます。

これはRADで機能します。プロジェクトのデプロイメント・アセンブリーをWebSphereのビルド構造に合わせてセットアップし、Mavenの依存関係をWEB-INF \ libフォルダー(プロジェクト - >プロパティー - >デプロイメント・アセンブリー - >追加 - > Javaビルド・パス・エントリー - > Mavenの依存関係)に移動します。

enter image description here

この構成では、私が正常に戦争を構築するために、私はRADから生成されたEARファイルをエクスポートし、手動で私のローカルサーバーにデプロイし、それが正常に動作することができますことができました。ただし、自動配備と「サーバー上で実行」オプションは、これだけでは機能しません。何らかの理由で、コンフリクトや爆発の原因となるすべての推移的な依存関係(portlet-api、servlet-apiなど)をWebSphereにデプロイします。

したがって、私は、McDowellによって提案されたpom解決策を試してみましたが、RADから正常にデプロイされたテストを削除しても、正しくコンパイルも実行もできませんでした。私はテストを含むために彼のポンの仕事をしているし、私はそれが働くときに私の結果をここに掲載します。

また、this threadには、MavenとRADを統合するための「論理的」な方法で2010 IBM documentへのリンクが含まれています。私はそれを試していて、どのソリューションが私のニーズをより良く満たすのかを見ていきます。もう一度、もし私がそれを働かせたら、私はここに詳しい情報を掲示するでしょう。


アップデート2011年11月21日

IBMは、Mavenの/ RAD統合のための更新されたドキュメントを作成しました。それはhereです。私はそれを通過し、それはかなりうまくいっています。これは、Maven、M2eclipse、およびWTPのスクリーンショットと背景の少しずつの段階的なものです。 Chuck氏がこのホワイトペーパーで説明しているいくつかの厄介さは残っていますが、最終的には、Mavenの慣習を破棄することなく、WebSphere Portal環境でMavenを使用することができました。うまくいけば、他の人が役に立つと思うでしょう。

関連する問題