Maven2の隠された機能は何ですか? [閉まっている]
-
10-07-2019 - |
質問
Maven2の隠された機能は何ですか?
解決
settings.xmlを使用して、ローカルマシンで実行されているすべてのMavenビルドに、ローカルにインストールされたMavenプロキシも使用するように強制できます。自分とネットワーク時間を節約します。
<settings 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/settings-1.0.0.xsd">
<profile>
<id>localcacheproxies</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>localCacheProxy</id>
<url>http://my-local-proxy.com/maven-proxy</url>
</repository>
</repositories>
</profile>
</profiles>
このsettings.xmlのネームスペースの見出しは、ここに投稿されている他の例とは対照的に、まともなインテリセンスも提供することに注意してください。 (Windows、Linux、MacおよびすべてのOSのホームディレクトリ.m2フォルダーに作成します)
他のヒント
dependency:analyzeもご覧ください。
ビルド時にしか検出できない値を含める必要があるファイルがある場合があります。たぶん、評価期間が終了しているかどうかを確認するJavaクラスがあり、その期間を「このビルドがコンパイルされてから30日」と定義します。現在の日付またはその他のプロパティをビルドに直接注入する方法が必要です。
Mavenには、フィルタリングと呼ばれるクールな非表示機能があります(こちらのドキュメント)。フィルタリングを使用すると、Mavenに特定のソースファイル内のパターンを検索し、それらを何らかの値に置き換えるように依頼できます。これは、次のように簡単にアクティブ化できます。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
フィルターには何を貼り付けることができますか?環境変数、pomファイルのほとんどの値、およびjavaコンパイラに関する情報。 Mavenでバージョン番号を変更する場合、whatever.propertiesファイルを探してバージョンを更新する必要もありません。 Mavenで変更するだけで完了です。
maven-dependency-pluginを使用すると、依存関係の競合と周期的な依存関係の問題を解決できます。
pom.xmlに追加:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
次に、 mvndependency:resolve または mvndependency:build-classpath を実行してテストします。
依存関係プラグインの詳細: http://maven.apache.org/plugins/maven-dependency- plugin / howto.html
- プロジェクトの継承
- プロジェクトの集約
- assembly:assembly
- レポート(findbugs、checkstyle、clover、pmdなど)