4

我正在构建一个 ANT 项目并构建 POM 文件。当前的 ANT 构建文件有一个使用 weblogic 的 JwscTask 生成 2 个 EAR 文件的目标。现在我只需将这 2 个 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>
4

1 回答 1

3

使用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事实上,除非您创建了 a ,否则您甚至不需要该参数,settings.xml因为存储库需要用户名和密码或需要代理。

于 2012-08-23T03:18:05.290 回答