mavenの一般的な基礎問題

6281 ワード

1.mavenマルチプロジェクト管理
1️⃣継承関係mavenのデフォルトは、ディレクトリ構造に基づいてpomの継承関係を設定します.すなわち、下位ディレクトリのpomは、上位ディレクトリのpomをデフォルトで継承します.
上位pom定義module(parent)
 
    ABCCommon 
    ABCCore 
    ABCTools 


注意:ABCCommonはmoduleのディレクトリ名です
module
 
    com.abc.product1 
    abc-product1 
    1.0.0-SNAPSHOT 
 
abc-my-module2 
jar

parentはmoduleに関連付けられ、継承関係が設定され、すべての親プロジェクトの構成内容がサブプロジェクトで自動的に有効になります.サブプロジェクトに同じ構成オーバーライドがない限り、
2️⃣参照関係
別の多重化方式で、typeをpomの依存に加えればよい.
 
    org.sonatype.mavenbook 
    persistence-deps 
    1.0 
    pom 



ただし、親プロジェクトでも参照プロジェクトでも、これらのプロジェクトはmvn installまたはmvn deployでローカルライブラリにインストールする必要があります.そうしないと、依存が見つかりません.eclipseコンパイル中にエラーが発生します.
注:多重化では、親プロジェクトのpomでdependencyManagementノードを定義できます.依存関係は保存されますが、この依存関係は定義にすぎず、実際には効果がありません.サブプロジェクトがこの依存関係を使用する場合は、独自のdependencyに簡略化された参照を追加できます.
 
    org.springframework 
    spring 


バージョン番号が空を飛ぶのを避ける
2.一部のsunのlicneceの制限は、repositoryに含めることができないため、mvnコマンドを使用してjarパッケージをローカルrepositoryまたは会社のrepositoryにインストールする必要があります.
3.pomで定義したカスタム属性
 
    ... 
     
        hello 
     
    ... 
 

${my.filter.value}対応するhello値を取得
4.依存関係をどのように遮断しますか?たとえば、プロジェクトで使用されるlibAはライブラリの1.0版に依存し、libB以来のライブラリの2.0版は、2.0版を統一的に使用したい場合、1.0版の依存をどのように削除しますか?
exclusionを設定すればよい
 
    org.hibernate 
    hibernate 
    3.2.5.ga 
     
         
            javax.transaction 
            jta 
         
     


5.jarファイルに依存するものがありますが、これらのjarをmvnのrepositoryにinstallしたくないので、どのように構成しますか?
systemタイプを使用する特殊な依存関係を追加
 
    com.abc 
    my-tools 
    2.5.0 
    jar 
    system 


注意:ただし、このjarはパブリッシュ時にコピーされないことを覚えておいてください.手動で構成する必要があり、他のプロジェクトがこのプロジェクトに依存している場合、警告が報告されます.
6.出力するjarパケットにすべての依存を自動的に含ませたい
 
    maven-assembly-plugin 
     
         
            jar-with-dependencies 
         
     



7.私のテスト例は他の工事のテスト例に依存しています.どのように設定しますか?
maven自体は、リリース時に単純なjarをリリースしたり、xxx-testsを同時にリリースしたりすることができます.JArとxxx-javadoc.JAr(repositoryではよく似たようなものが見られます).私たちのプロジェクトAは同時にtestを出力します.jarは次のような設定ができます
 
 
    org.apache.maven.plugins 
    maven-jar-plugin 
     
         
             
                test-jar 
             
         
     



次に、他の参照が必要な工程Bで次のようなdependency設定を行います.
 
    com.abc.XXX 
      A 
    ${project.version} 
    test-jar 
    test 



8.変数の置換方法プロジェクト内のjdbcなどのプロファイルpropertiesはpomの変数をいくつか使用し、パブリケーションで実際のコンテンツを含む最終結果ファイルをどのように使用しますか?
 
    ... 
     
        com.mysql.jdbc.Driver 
        jdbc:mysql://localhost:3306/development_db 
        dev_user 
        s3cr3tw0rd 
     
    ... 
     
         
             
                src/main/resources 
                true 
             
         
     
    ... 
     
         
            production 
             
                oracle.jdbc.driver.OracleDriver 
                jdbc:oracle:thin:@proddb01:1521:PROD 
                prod_user 
                s00p3rs3cr3t 
             
         
     


9.私のプログラムでは、一部のユニットのテストにエラーがありました.テスト手順を無視するにはどうすればいいですか?
① -Dmaven.test.skip=true    -DskipTests=true 
②       surefire      


    
      
        org.apache.maven.plugins
        maven-surefire-plugin
        2.8
        
          true
        
      
    
  


10.単一のテスト・インスタンスのみを実行したい場合は、実装できますか?
-Dtest=MyTest   ,  MyTest               

11.プラグインにパラメータを割り当てる方法
対応するプラグインのヘルプ情報を参照
 
        ... 
         
             
                maven-compiler-plugin 
                 
                    1.5 
                    1.5 
                 
             
         
        ... 
     

12.私のディレクトリは非標準のディレクトリ構造です.mavenをサポートするように設定するにはどうすればいいですか?
 
    target 
    src 
    js/scripts 
    test 
    bin 
    bin 


他は重要ではないと思っているかもしれませんが、抜粋してください.https://www.cnblogs.com/BigTall/archive/2011/03/23/1993253.html