该项目是使用Maven构建的Java EE应用程序。作为IDE,我正在使用IntelliJ。我正在将应用程序部署到远程Payara。我的应用程序组织如下:
- 父母
-
module1.jar
-
module1.jar
-
app.war
-
WEB-INF/plugins/module1.jar
-
WEB-INF/plugins/module2.jar
-
要打包app.war
,我在pom.xml
的{{1}}中使用以下插件
app.war
如果在使用IntelliJ进行部署之前运行<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/resources/plugins</outputDirectory>
<resources>
<resource>
<directory>../module1/target</directory>
<includes>
<include>module1.jar</include>
</includes>
</resource>
(...)
</plugin>
,则可以很好地部署app.war。我正在对Payara使用远程部署配置。 mvn clean package
初始化期间会加载module1.jar
和module2.jar
中的代码。
如果我更改了app.war
或module1.jar
中的代码并想重新部署正在运行的应用程序,则必须再次运行module2.jar
,这会花费很多时间。否则,IntelliJ将不会在mvn clean package
中包含更改的代码。
如何使IntelliJ的行为类似于Maven app.war
?