gpt4 book ai didi

maven 跳过打包阶段

转载 作者:行者123 更新时间:2023-12-01 08:31:43 24 4
gpt4 key购买 nike

我正在对一个 ANT 项目进行 mavenizing 并构建 POM 文件。当前的 ANT 构建文件有一个使用 weblogic 的 JwscTask 生成 2 个 EAR 文件的目标。现在我只需要将这 2 个 EAR 文件部署到远程存储库的 weblogic 服务器。我不希望 Maven 生成任何包,而是获取生成的 2 个 EAR 文件并部署它。本质上,清理、编译和部署阶段必须由 Maven 处理;包装由ANT完成。我使用pom文件中的maven-antrun-plugin调用build.xml文件中的target。

如果我选择打包为“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>

最佳答案

使用 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因为存储库需要用户名和密码或需要代理。

关于maven 跳过打包阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12082249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com