我想将我的war文件直接构建并部署到appserver的域中。 下面的代码片段对此很有效,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${version.maven.war.plugin}</version>
<configuration>
<outputDirectory>
C:\Program Files\glassfish\glassfish5\glassfish\domains\domain1\autodeploy
</outputDirectory>
</configuration>
</plugin>
我不想对路径进行硬编码。因此,我设置了系统变量GLASSFISH_HOME:C:\ Program Files \ glassfish,并在POM文件中使用了它,如下所示:
<outputDirectory>
${GLASSFISH_HOME}\glassfish5\glassfish\domains\domain1\autodeploy
</outputDirectory>
,但不起作用。 maven正在项目的当前路径中创建一个目录,如下所示:
[INFO]建立战争:C:\ Workspaces \ Workspace- Restful \ moviedirectory \ $ {GLASSFISH_HOME} \ glassfish5 \ glassfish \ domains \ domain1 \ autodeploy \ moviedirectory.war
关于如何避免使用硬编码路径,而是在使用maven构建战争时将战争部署到appserver的任何建议?
答案 0 :(得分:1)
看看How to refer environment variable in POM.xml?
因此,以下应做您想做的事。
<outputDirectory>
${env.GLASSFISH_HOME}\glassfish5\glassfish\domains\domain1\autodeploy
</outputDirectory>