2013-01-02 5 views
7

私はMavenを初めて使用しています。 Mavenプロジェクトフォルダとは別のディレクトリにターゲットフォルダを生成しようとしています。私の必要条件によると、生成されたwarファイルは、mavenプロジェクトをビルドするときに、C:\ nareshフォルダのような別のフォルダに配置する必要があります。プロジェクトディレクトリ外の出力を生成するようにMavenを設定する

は、ここに私のコード:

<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"> 
    <packaging>war</packaging> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.test</groupId> 
    <artifactId>project</artifactId> 
    <version>1.0</version> 

    <build> 
    <directory>${project.basedir}/target</directory> 
    <outputDirectory>C:\Software\${project.basedir}/target</outputDirectory> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 

    </build> 
</project> 
+1

に装着されている展開フォルダを使用しています質問はありますか? – khmarbaise

+0

@khmarbaise、時には私たちは開発とローカルでのテストをスピードアップするためにこの種の手配をしています。しかし、これらの設定はPRODまたはUAT環境に実際には投稿されません。 – Jaikrat

+0

この種の構成ではパフォーマンスは向上しません。正確に反対の原因は、すべてのCIのsolutoinなどで失敗します – khmarbaise

答えて

10

@khmarbaiseは正しいです。可能であれば、慣習に従う方がよいでしょう。そうでなければ、別のビルドツールを使用するか、全面的に戦うことになります。それは言った、あなたがあなたの目標を達成するために、次のことが可能です。

<build> 
    <outputDirectory>${user.home}/${project.artifactId}/target</outputDirectory> 
    ... 
</build> 

これは、ルートディレクトリとしてuser.homeシステムプロパティを使用し、<artifactId/>(「プロジェクト」)にちなんで名付けられたフォルダに出力ディレクトリを作成します。 Javaシステムpropertiesはすべてpomで利用可能です。これを別の場所に作成する必要がある場合は、上記のディレクトリに相対的にするだけです。代わりに、Mavenの戦争 - プラグインを使用して

をあなたの質問は、あなたが本当にただ別のディレクトリにアーティファクト(warファイル)を出力する必要があることを示しているので、私はあなたにoutput directoryのための設定を変更することを示唆していますmaven-war-pluginです。たとえば:あなたは別のレイアウトを持つ必要がありますか、なぜ受け入れ答えと非常に類似し

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0</version> 
     <configuration> 
      <outputDirectory>${user.home}/${project.artifactId}</outputDirectory> 
     </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

私はこのようにしていただきありがとうございます.. – Naresh

2

あなたはMavenのについて学ばなければならない最初の事はある:Mavenは、これらの規則の一つは、どこか別の場所target folder which is located under the current projectとないを持っていることの規則があります。さらに絶対的なフォローは絶対的なフォルダー定義をあなたのpomに入れています。

0

は、私がドッキングウィンドウ

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
       <outputDirectory>${project.build.directory}/deployments</outputDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 
関連する問題