首页 文章

maven跳过包装阶段

提问于
浏览
3

我正在对一个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>

1 回答

  • 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
    

    实际上,除非您创建了 settings.xml ,否则甚至不需要 -DrepositoryId 参数,因为存储库需要用户名和密码或需要代理 .

相关问题