/target
どの maven-plugin がディレクトリまたは pom で構成されているものを作成する責任があるのか 疑問に思っています。
何らかの理由で、このフォルダーの作成方法を変更したいと思います (ディレクトリではなくリンク)。
もう 1 つのオプションは、このターゲット フォルダーが作成される前に独自のプラグインを実行することです。
何か案が?
/target
どの maven-plugin がディレクトリまたは pom で構成されているものを作成する責任があるのか 疑問に思っています。
何らかの理由で、このフォルダーの作成方法を変更したいと思います (ディレクトリではなくリンク)。
もう 1 つのオプションは、このターゲット フォルダーが作成される前に独自のプラグインを実行することです。
何か案が?
DefaultMavenResourcesFilteringクラスを参照してください。私が理解したtarget
ように、必要に応じてライフサイクルから動的に作成されます。したがって、 の正確な作成時刻を予測することはできませんoutputDirectory
。
しかし、Lifecycle Referenceによると、 「ビルド状態を初期化します。たとえば、プロパティを設定したり、ディレクトリを作成したりします。」- このフェーズで作成する必要があります。私の意見では、これはバグであり、報告する必要があります。
exec または antrun プラグインを使用して、任意のフォルダーを作成してみてください。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>createInMemoryTarget</id>
<phase>initialize</phase>
<configuration>
<tasks>
<mkdir dir="M:/${project.groupId}/${project.artifactId}/${project.version}"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
M:
RAM ディスクはどこにありますか。次に、 junction プラグインでマウントできます。
<plugin>
<groupId>com.pyx4j</groupId>
<artifactId>maven-junction-plugin</artifactId>
<version>1.0.3</version>
<executions>
<execution>
<id>symlinkTargetToInMemory</id>
<phase>initialize</phase>
<goals>
<goal>link</goal>
</goals>
</execution>
</executions>
<configuration>
<links>
<!-- link the target folder to appropriate in-memory to directory -->
<link>
<src>M:/${project.groupId}/${project.artifactId}/${project.version}</src>
<dst>${project.build.directory}</dst>
</link>
</links>
</configuration>
</plugin>
次に、この 2 つのプラグインの構成をプロファイリングに配置し、必要に応じてアクティブ化します。