MVNパッケージには、記録します

1.mvnパッケージ

MVNパッケージには、プロジェクトのニーズに応じて、我々はパケット構造をプレイしたい、のpom.xmlに配置されました

 

2.方法の抜粋

2.1パッケージのプラグインのmaven-jarファイル・プラグインとMaven依存性 - プラグイン

    <ビルド>   
        <プラグイン>   
      
            <プラグイン>   
                <groupIdを> org.apache.maven.plugins </ groupIdを>   
                <たartifactId>のmaven-jarファイル・プラグイン</たartifactId>   
                <バージョン> 2.6 </ version>の   
                <設定>   
                    <アーカイブ>   
                        <マニフェスト>   
                            <addClasspath>  </ addClasspath>   
                            <classpathPrefix>のlib / </ classpathPrefix>   
                            <mainClass> com.xxg.Main </ mainClass>   
                        </マニフェスト>  
                    </アーカイブ>   
                </ configuration>の   
            </プラグイン>   
            <プラグイン>   
                <のgroupId> org.apache.maven.plugins </のgroupId>   
                <たartifactId> Mavenの依存性、プラグイン</たartifactId>   
                <バージョン> 2.10 </バージョン>   
                <実行>   
                    <実行>   
                        <ID>コピーの依存関係</ ID>   
                        <相> パッケージ </相>   
                        <目標>   
                            <目標>コピーの依存関係</目標>   
                        </目標>   
                        <設定>   
                            <OUTPUTDIRECTORY> $ {project.build.directory} / libに</ OUTPUTDIRECTORY>  
                        </設定>   
                    </実行>   
                </実行>   
            </プラグイン>   
      
        </プラグイン>   
    </ビルド>  

Mavenのジャー・プラグインのMETA-INF / MANIFEST.MFファイルを生成する部分、<mainClass> com.xxg.Main </ mainClass> <addClasspath>真</ addClasspath>、メインクラスのMANIFEST.MFに指定MANIFEST.MFのClass-Pathキーと設定の依存関係、<classpathPrefix>のlib / </ classpathPrefix>依存関係指定されたディレクトリを追加します。

Mavenの依存性、プラグインウィジェット<OUTPUTDIRECTORY> $ {project.build.directory} / libに</ OUTPUTDIRECTORY>指定された場所にコピー依存関係、即ち、ディレクトリLIB。設定後、MVNパッケージを梱包指示は、パッケージはジャーターゲット・ディレクトリに生成され、依存関係がターゲット/ libのディレクトリにコピーされ、

指定メインクラスは、依存関係と、それは、java -jarから直接xxx.jarのjarパッケージを実行することができます。

このよう発生ジャーパッケージには欠点があり、あまりにも多くのパケットが発生したということですjarファイルは、簡単に管理するために、プロジェクト自体のコード、リソース、およびすべての依存関係が含まれているjarファイルを生成するための唯一の二つの方法ではありません。

2.2 Mavenのアセンブリ・プラグインプラグインパッケージを使用して

    <ビルド>   
        <プラグイン>   
      
            <プラグイン>   
                <groupIdを> org.apache.maven.plugins </ groupIdを>   
                <たartifactId>のmaven-組立・プラグイン</たartifactId>   
                <バージョン> 2.5.5 </バージョン>   
                <設定>   
                    <アーカイブ>   
                        <マニフェスト>   
                            <mainClass> com.xxg.Main </ mainClass>   
                        </マニフェスト>   
                    </アーカイブ>   
                    <descriptorRefs>   
                        <descriptorRef>ジャー付き依存性</ descriptorRef>  
                    </ descriptorRefs>  
                </ configuration>の   
            </プラグイン>   
      
        </プラグイン>   
    </ビルド>  

パッケージのコマンド:組立用MVNパッケージ変更:SINGLE 

パッケージには、ターゲットディレクトリ内XXX-ジャーと-dependencies.jarファイルが生成されます後は、このドキュメントには、独自のプロジェクト内のコードとリソースが含まれていますが、また、コンテンツのすべての依存関係が含まれていないだけ。これは、java -jarで直接実行することができます。

アセンブリにせずに、MVNパッケージを介して直接パッケージに加えて:シングル、しかし、いくつかの設定を追加する必要があります。

    <ビルド>   
        <プラグイン>   
      
            <プラグイン>   
                <groupIdを> org.apache.maven.plugins </ groupIdを>   
                <たartifactId>のmaven-組立・プラグイン</たartifactId>   
                <バージョン> 2.5.5 </バージョン>   
                <設定>   
                    <アーカイブ>   
                        <マニフェスト>   
                            <mainClass> com.xxg.Main </ mainClass>   
                        </マニフェスト>   
                    </アーカイブ>   
                    <descriptorRefs>   
                        <descriptorRef>ジャー付き依存性</ descriptorRef>  
                    </ descriptorRefs>  
                </ configuration>の   
                <実行>   
                    <実行>   
                        <ID>メイクアセンブリ</ ID>   
                        <相> パッケージ </相>   
                        <目標>   
                            <目標>シングル</目標>   
                        </目標>   
                    </実行>   
                </実行>   
            </プラグイン>   
      
        </プラグイン>   
    </ビルド>  

ここで<フェーズ>パッケージ</位相>、<目標>シングル</目標>実行パッケージには、組み立てを行う、パック、手段:シングル、直接MVNパッケージを包装することができます。

しかし、プロジェクトが使用している場合は春の  時にパッケージの実行間違っているとこの方法を再生し、フレームワークを。

2.3のmaven-シェードプラグインパッケージウィジェット

 

    <ビルド>   
        <プラグイン>   
      
            <プラグイン>   
                <のgroupId> org.apache.maven.plugins </のgroupId>   
                <たartifactId>達人-シェードプラグイン</たartifactId>   
                <バージョン> 2.4.1 </バージョン>   
                <実行>   
                    <実行>   
                        <相> パッケージ </相>   
                        <目標>   
                            <目標>日陰</目標>   
                        </目標>   
                        <設定>   
                            <トランス>  
                                <トランス実装= "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">   
                                    <mainClass> com.xxg.Main </ mainClass>   
                                </トランス>   
                            </トランス>   
                        </構成>   
                    </実行>   
                </実行>   
            </プラグイン>   
      
        </プラグイン>   
    </ビルド>  

 

設定後は、パッケージにMVNパッケージを実行します。2つのJARパッケージを生成するターゲットディレクトリには、注意が元-xxx.jarファイルが、他のものではありません。あなたが直接実行できるようにとMavenアセンブリ・プラグインは、のように、生成されたjarファイルは、すべての依存関係が含まれています。

プロジェクトは春のフレームワークで使用されている場合は、XMLスキーマファイル実行時エラーを読み取り、ジャーパッケージを打つ依存します。その理由は、生成されたパケットは、各jarファイルを上書きした場合のSpring Frameworkのジャーパッケージが複数、同じファイルやspring.handlers spring.schemasが含まれていることです。互いの影響を避けるために、AppendingTransformerは、ファイルの内容をマージ付加するために使用することができます。

    <ビルド>   
        <プラグイン>   
      
            <プラグイン>   
                <のgroupId> org.apache.maven.plugins </のgroupId>   
                <たartifactId>達人-シェードプラグイン</たartifactId>   
                <バージョン> 2.4.1 </バージョン>   
                <実行>   
                    <実行>   
                        <相> パッケージ </相>   
                        <目標>   
                            <目標>日陰</目標>   
                        </目標>   
                        <設定>   
                            <トランス>  
                                <トランス実装= "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">   
                                    <mainClass> com.xxg.Main </ mainClass>   
                                </トランス>   
                                <トランス実装= "org.apache.maven.plugins.shade .resource.AppendingTransformer ">   
                                    <リソース> META-INF / spring.handlers </リソース>   
                                </トランス>   
                                <トランス実装=" org.apache.maven.plugins.shade.resource.AppendingTransformer ">   
                                    <  リソース> META-INF / spring.schemas </リソース>
                                </トランス>   
                            </トランス>   
                        </ configuration>の   
                    </実行>   
                </実行>   
            </プラグイン>   
      
        </プラグイン>   
    </ビルド>  

 

おすすめ

転載: www.cnblogs.com/zhanghao1799/p/11951222.html