1

I'm currently on Liferay 6.2 (with Tomcat), and I can configure the liferay-maven-plugin in my Liferay hook project's maven pom.xml as below, in order to pre-process my hook WAR for hot deployment (using the direct-deploy goal of the plugin).

<plugin>
    <groupId>com.liferay.maven.plugins</groupId>
    <artifactId>liferay-maven-plugin</artifactId>
    <version>6.2.1</version>
    <executions>
        <execution>
            <id>pre-process-war</id>
            <phase>package</phase>
            <goals>
                <goal>direct-deploy</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <appServerDeployDir>${project.basedir}/target/liferay-pre-process</appServerDeployDir>
        <liferayVersion>6.2.1</liferayVersion>
        <pluginType>hook</pluginType>
        <unpackWar>false</unpackWar>
    </configuration>
</plugin>

I'm now trying to migrate this hook to Liferay 7.2.1 CE. There is no plan to redesign this as an OSGI module at the moment i.e. it would continue to be packaged as a WAR. So how would my new direct-deploy configuration look like, with Liferay 7.2.1? Specifically:

a) Can I continue using the same Maven plugin? I see from this doc that the liferay-maven-plugin has been "removed", yet my understanding from other help pages is that this plugin should not be used only with the newer, OSGI-module style plugins (the latter makes more sense to me).

b) If I can continue using the same Maven plugin, which version of the plugin works with 7.2.1? Also, which liferayVersion value should I use here? I tried a bunch of combinations and none of them worked.

For instance, I first tried liferayVersion 7.2.1 but the build failed while running the direct-deploy goal, since Maven didn't find a com.liferay.portal:portal-web artifact with that version. So I tried the latest version of that artifact from Maven Central, which is 7.0.2, as my liferayVersion. But the build failed again, this time because it couldn't locate the corresponding version of com.liferay.portal:portal-service. There's no 7.x version of portal-service though, which makes sense because it's been replaced with the portal-kernel artifact. Not specifying liferayVersion doesn't work either.

4

1 回答 1

0

我在 Liferay 论坛上收到了回复,表明 Liferay-maven-plugin 确实已在 Liferay 7.x 中删除,因此唯一的选择是将 WAR 复制到 Liferay 的部署文件夹并让它进行预处理在部署时(而不是在构建时使用 Maven 插件执行此操作)。鉴于目前缺乏替代方案,这似乎是唯一的前进道路(并且有效)。

于 2020-06-05T17:17:30.960 回答