2

/targetどの maven-plugin がディレクトリまたは pom で構成されているものを作成する責任があるのか​​ 疑問に思っています。

何らかの理由で、このフォルダーの作成方法を変更したいと思います (ディレクトリではなくリンク)。

もう 1 つのオプションは、このターゲット フォルダーが作成される前に独自のプラグインを実行することです。

何か案が?

4

2 に答える 2

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 つのプラグインの構成をプロファイリングに配置し、必要に応じてアクティブ化します。

于 2016-05-10T19:22:24.370 に答える