我試圖建立一個pom.xml
來處理遠程TomEE(PluME 7.0.3)服務器的部署和取消部署。但是,我找不到在path
配置標籤中使用的正確值。下面是部署我的應用程序(全面的EAR,用於教育目的)遠程TomEE工作插件配置:如何在tomee-maven-plugin中指定路徑,以便部署和取消部署都能正常工作?
<build>
<plugins>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>7.0.3</version>
<configuration>
<context>someear</context>
<tomeeClassifier>plus</tomeeClassifier>
<tomeeHost>192.168.100.100</tomeeHost>
<debugPort>8000</debugPort>
<tomeeAjpPort>8009</tomeeAjpPort>
<tomeeHttpPort>8080</tomeeHttpPort>
<tomeeShutdownPort>8005</tomeeShutdownPort>
<path>target/someear-1.0-SNAPSHOT.ear</path>
<useBinaries>true</useBinaries>
</configuration>
</plugin>
</plugins>
</build>
而取消部署,我會配置插件這樣的:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>7.0.3</version>
<configuration>
<context>someear</context>
<tomeeClassifier>plus</tomeeClassifier>
<tomeeHost>192.168.100.100</tomeeHost>
<debugPort>8000</debugPort>
<tomeeAjpPort>8009</tomeeAjpPort>
<tomeeHttpPort>8080</tomeeHttpPort>
<tomeeShutdownPort>8005</tomeeShutdownPort>
<path>someear-1.0-SNAPSHOT</path>
<useBinaries>true</useBinaries>
</configuration>
</plugin>
</plugins>
</build>
請注意path
配置中的差異。從命令行來看,它的行爲相似;省略了pom.xml中path
標籤的時候,我可以部署和取消部署這樣的:
mvn tomee:deploy -Dtomee-plugin.archive=target/someear-1.0-SNAPSHOT.ear
mvn tomee:undeploy -Dtomee-plugin.archive=someear-1.0-SNAPSHOT
有沒有人經歷了同樣的行爲,並找到一種方法來緩解呢?在調用mvn
時,我希望在pom.xml中完全配置部署和取消部署,但不指定其他參數。但是,截至目前,我不能這樣做,因爲tomee:deploy
似乎預期與tomee:undeploy
不同path
。
編輯
好吧,基於@Old學院的編輯答案,我可以做這樣的事情:
<profiles>
<profile>
<id>deploy</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<my-tomee-maven-plugin-path>target/someear-1.0-SNAPSHOT.ear</tomee-maven-plugin-path>
</properties>
</profile>
<profile>
<id>undeploy</id>
<properties>
<my-tomee-maven-plugin-path>someear-1.0-SNAPSHOT</tomee-maven-plugin-path>
</properties>
</profile>
</profiles>
然後,在tomee-maven-plugin
的配置部分像這樣指定path
:
...
<path>${my-tomee-maven-plugin-path}</path>
...
然後,像這樣執行maven:
mvn tomee:deploy
mvn tomee:undeploy -Pundeploy
我認爲比在執行時指定一些-D
參數更方便(YMMV)。
然而,在我看來,理想的解決方案是,如果你能在tomee-maven-plugin
的配置配置path
事不宜遲,使得兩個tomee:deploy
和tomee:undeploy
工作。
EDIT2
我發現沒有它我似乎無法之前找到型材另一種可能性(基於:http://tomee-openejb.979440.n4.nabble.com/Deployment-to-TomEE-7-0-0-using-tomee-maven-plugin-error-Cannot-open-input-stream-to-server-tp4679142p4679282.html):
<plugin>
<groupId>org.apache.tomee.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>7.0.3</version>
<configuration>
<context>${project.artifactId}</context>
<tomeeClassifier>plus</tomeeClassifier>
<context>someear</context>
<tomeeClassifier>plus</tomeeClassifier>
<tomeeHost>192.168.100.100</tomeeHost>
<debugPort>8000</debugPort>
<tomeeAjpPort>8009</tomeeAjpPort>
<tomeeHttpPort>8080</tomeeHttpPort>
<tomeeShutdownPort>8005</tomeeShutdownPort>
<!-- no <path> tag -->
<useBinaries>true</useBinaries>
</configuration>
<executions>
<execution>
<id>deploy-it</id>
<phase>none</phase>
<goals>
<goal>deploy</goal>
</goals>
<configuration>
<path>target/someear-1.0-SNAPSHOT.ear</path>
</configuration>
</execution>
<execution>
<id>undeploy-it</id>
<phase>none</phase>
<goals>
<goal>undeploy</goal>
</goals>
<configuration>
<path>someear-1.0-SNAPSHOT</path>
</configuration>
</execution>
</executions>
</plugin>
用法:
mvn tomee:[email protected]
mvn tomee:[email protected]
謝謝!請注意,我使用TomEE而不是Glassfish,但行爲似乎相似。據我所知,我可以精確地指定'tomee-maven-plugin'插件配置一次,因此,完全按照路徑。但該路徑對於部署或取消部署是有效的,而不是兩者都有效。我只想執行'mvn tomee:deploy'或'mvn tomee:undeploy',而不指定其他參數。 – stef77
啊!我明白你了現在。對於玻璃魚的東西感到抱歉,我需要在閱讀上更好。你在找什麼是Maven資源過濾。通過編輯更新我的答案。 –