我正在对一个ANT项目进行整理并构建POM文件。当前的ANT构建文件有一个使用weblogic的JwscTask生成2个EAR文件的目标。现在我只需要将这两个EAR文件部署到远程repo的weblogic服务器上。我不希望Maven生成任何包,但是生成2个EAR文件并进行部署。从本质上讲,清洁,编译和部署阶段必须由Maven负责;包装由ANT完成。我使用pom文件中的maven-antrun-plugin来调用build.xml文件中的目标。
如果我选择包装为'POM',那么Maven将不会生成任何包装,但它也不会编译src文件。
有什么方法可以跳过Maven生命周期中的包阶段?假设我在POM中将包装指定为WAR,有没有办法跳过WAR文件的生成,并部署2个EAR文件?
以下是POM文件的一部分:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<ant antfile="${basedir}/build.xml" target="build-service"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 0 :(得分:1)
使用mvn deploy:deploy-file
目标。这允许您将文件部署到存储库中,而无需在Maven中执行项目的其余部分。您可以使用pom.xml
为其部署,也可以指定各种参数:
$ mvn deploy:deploy-file -Dfile=app.ear \
-DpomFile=pom.xml \
-DrepositoryId=VeggieCorp \
-Durl=http://mvn.veggiecorp.com/releases
或者
$ mvn deploy:deploy-file -Dfile=app.ear \
-DgroupId=com.veggicorp \
-DartifactId=app \
-Dversion=3.2.1 \
-DrepositoryId=VeggieCorp \
-Durl=http://mvn.veggiecorp.com/releases
事实上,除非您创建了-DrepositoryId
,否则甚至不需要settings.xml
参数,因为存储库需要用户名和密码,或者需要代理。