7

私はmaven-assembly-pluginを使用して、依存関係のある実行可能なモノリシックjarを構築しています。また、リソースフィルタリングを使用して、カスタムのレーン固有(dev、stage、prodなど)のプロパティを設定しています。

jarのfinalNameにレーン名(dev、stage、prodなど)を含めるにはどうすればよいですか?

次のmvnコマンドを使用して、次のようなjarファイルを作成したいと思います。

  • mvn clean install -P DEV-> ws-client-DEV.jar
  • mvn clean install -P STAGE-> ws-client-STAGE.jar
  • mvn clean install -P PROD-> ws-client-PROD.jar

どこかにMavenプロパティが見つかりませんか?可能であれば、冗長なコマンドライン引数を使用しないようにします(つまり、-'mvn clean install -P DEV -Dlane = DEV')。

これが私のアセンブリプラグイン構成です:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2.2</version>
    <executions>
        <execution>
            <id>jar-with-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <finalName>ws-client</finalName>
        <appendAssemblyId>false</appendAssemblyId>
        <archive>
            <manifest>
                <mainClass>Example</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>
4

2 に答える 2

9

Bhaskarのものと似ていますが、わずかに変更されています。

<build>タグの後に、

<finalName>${project.artifactId}-${lane}</finalName>

レーン値をプロファイルのプロパティとして設定できます。

<profiles>
    <profile>
        <id>DEV</id>
        <properties>
            <lane>DEV</lane>
        </properties>
    </profile>
</profiles>

次に、次のようにビルドを実行します。mvn ... -P DEV(mvn clean install -P DEVなど)

于 2012-05-01T17:11:10.183 に答える
3

<build>タグの後に、

<finalName>${project.artifactId}-${lane}</finalName>

そして、「レーン」環境変数をプロファイル名に設定します。

mvn -P DEV -Dlane=DEVなど。

または、もう少しクリエイティブになって、ここで説明されているようにアクティブなプロファイルIDを見つけることができますMaven-プロファイル定義でプロファイルIDを参照できますか?

編集 - - -

冗長な引数を避けたい場合。

envを使用して対応するプロファイルをトリガーしてみませんか。財産。

コマンドラインなど

mvn -Dlane=DEV|STAGE|PROD

とpomで

<profile>  
  <id>DEV</id>  
  <activation>
    <property>
      <name>lane</name>
      <value>DEV</value>
    </property>
  </activation>
  <build>  
    // rest of the profile  
</profile>

また、STAGEプロファイルとPRODプロファイルについても同じです。

于 2012-05-01T16:45:40.243 に答える