2011-07-27 5 views
1

私は自分のプロジェクトビルドを完了しています(Mavenを使用)。今私は耳に "梱包"する必要があります。Mavenの耳の問題

私がする必要があるのは、3つの依存関係(1つの.jarと2つの.war)です。どのように以前に(アリで)行われたのか、私はそれをmavenに翻訳しています - 次に私はパッケージを整理しますので、より生産的にすることができます。

しかし、私はいくつか問題があります。まず、パッケージの名前はnull - $ {version} .earとなります。それはリポジトリに自分自身をコピーしますが、ターゲットフォルダに間違った名前が付けられます。もう一つは、他のすべてのパッケージの依存関係をコピーすることです。私はヌル名とパッケージのコピーについて何ができるのかを知りたい。

はここに私のポンポンである:すべての

<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> 
    <parent> 
     <groupId>owner</groupId> 
     <artifactId>coreisp</artifactId> 
     <version>2.0</version> 
    </parent> 
    <groupId>owner</groupId> 
    <artifactId>coreisp-app</artifactId> 
    <packaging>ear</packaging> 
    <version>2.0</version> 
    <name>Projeto CoreISP</name> 
    <dependencies> 
     <dependency> 
      <groupId>${pom.groupId}</groupId> 
      <artifactId>coreisp-core</artifactId> 
      <version>${pom.version}</version> 
      <type>jar</type> 
     </dependency> 
     <dependency> 
      <groupId>${pom.groupId}</groupId> 
      <artifactId>coreisp-initializer</artifactId> 
      <type>war</type> 
      <version>${pom.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>${pom.groupId}</groupId> 
      <artifactId>coreisp-site</artifactId> 
      <type>war</type> 
      <version>${pom.version}</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>${application.id}-${pom.version}</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-ear-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <modules> 
         <jarModule> 
          <groupId>owner</groupId> 
          <artifactId>coreisp-core</artifactId> 
          <includeInApplicationXml> 
          true 
          </includeInApplicationXml> 
          <bundleDir>/</bundleDir> 
         </jarModule> 
         <webModule> 
          <groupId>owner</groupId> 
          <artifactId> 
          coreisp-initializer 
          </artifactId> 
          <bundleDir>/</bundleDir> 
         </webModule> 
         <webModule> 
          <groupId>owner</groupId> 
          <artifactId> 
          coreisp-site 
          </artifactId> 
          <bundleDir>/</bundleDir> 
         </webModule> 
        </modules> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

nullはあなたの定義から来ています ...(これは試してみて、規約を使わないのですか?)さらに、あなたは$ {pom.groupId}を使用しています。これは古いものです。代わりに$ {project.groupId}などを使うべきです(これについての警告は表示されません)。なぜスナップショット版を使用していないのですか? – khmarbaise

+0

私はpavenを別のプロジェクトからコピーしました。これは、最初からmavenプロジェクトとして開始されました。これは私が翻訳しようとしているものです。ありがとう、私はあなたのすべての提案をした!スナップショットは古いコードベースのバージョンです。 –

+0

耳鼻咽喉に依存性を指定する必要がありますか?なぜ私は親の依存関係を使用できないのですか? – Muky

答えて

1

まず、あなたのPOMから要素を削除し、application.idプロパティは、あなたに「ヌル」の名前を与えるものです。

推移的な依存関係がEARに収まらないように、POMにあなたが望むこととしたくないことを明示的に指定することをお勧めします。依存関係を維持するためには、POMに定義された範囲を定義するだけです。私はそれが痛い仕事であることを知っていますが、私の意見では、あなたが望むものを正確に得るためには、それは価値があります。

+0

ありがとう、それは働いた!私はそれらを提供されたものにすることは最終的な耳にそれらをパッケージ化しないと思った。どうもありがとう! –

+0

ちょうど私が意味することを説明する:私は提供されるように依存関係を置くが、彼らが行った間、彼らの依存関係はパッケージに入っていなかった。再度、感謝します。 –

関連する問題