13 のサブモジュールを含む Maven プロジェクトがあります。ビルド プロセスを最適化する方法について 2 つの質問があります。
- x86-64 サーバー専用の Java コードをコンパイルしたい。これを行うためにMavenを構成するにはどうすればよいですか?
- 4 つの CPU コアを搭載したサーバーがあります。コードのコンパイルにマルチスレッドを使用できますか?
2) mvn package -T 2C
CPU コアごとに 2 つのスレッドでビルドされます
- x86-64 サーバー専用の Java コードをコンパイルしたい。これを行うためにMavenを構成するにはどうすればよいですか?
Java はクロスプラットフォームです。x86-64 のみでコンパイルすることはできません。
.2. 4 つの CPU コアを搭載したサーバーがあります。コードのコンパイルにマルチスレッドを使用できますか?
はjavac
マルチスレッドです。持っているすべてのコアを使用するわけではないかもしれませんが、それは可能な限りマルチスレッド化されています。
アンドリューが指摘しているように、ビルドをマルチスレッド化して、テストを同時に実行することができます (テストを中断する可能性があります)。これはコンパイルを並行させません。
javac
。少し前に、コンパイラのパフォーマンスを向上させるためにこの pom 構成について読みました
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
.....
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>1.8.6</version>
</dependency>
</dependencies>
</plugin>
私はそれを試していませんが、あなたにとって興味深いかもしれません。
この改善の説明は、ここにあります。
並列ビルド(上記の-Tnフラグ)に加えて、プロファイルの下にあらゆる種類の余分なものを隠すことができるかどうかを確認します-デフォルトでテストをオフに設定し、あらゆる種類のタグ付け、コード分析、リモートリポジトリへの配布などをオプションで実行します。Mavenでより多くのメモリをスローすることもできます(MAVEN_OPTS env。var)