2

アーキタイプにしたいサンプル アプリケーション/ポートレットを含む liferay-portlet-project を取得しました。*.launchプロジェクト内には、webapp を再デプロイするための2 つのファイルを含むフォルダーがあります。両方とも、私が問題を抱えている次の行があります。

<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/rawportlet}"/>

「rawportlet」はプロジェクトの名前です。手動で${artifactId}この変数に変更すると、アーキタイプを使用してプロジェクトを作成するときに解決されません。プロジェクトの生成中にこの変数を解決するといいでしょう。

これを達成する方法はありますか?または回避策?よろしくお願いします。

4

2 に答える 2

1

回避策: アーキタイプの使用後にユーザーが実行できる Maven ゴールを作成します。したがって、手順は(たとえば)次のようになります。

  1. アーキタイプからプロジェクトを生成する

    mvn archetype:generate -DarchetypeCatalog=local

  2. 生成後のクリーンアップを実行します (プロジェクトのベース ディレクトリで実行します)。

    mvn antrun:run

したがって、これに対する私のコードは、アーキタイプの「pom.xml」にあります。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>default-cli</id>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <replace token= "rawportlet" value="${artifactId}" dir="runConfigs">                                 
                  <include name="**/*.launch"/>
                </replace>
              </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>

「runConfigs」ディレクトリは、*.launchファイルが保存される場所です。

クレジット:

リソースをコピーするときのソース ファイル内の文字列の完全な検索と置換

Maven、特定の目標を構成する

于 2012-11-02T08:15:14.710 に答える