是否可以避免在'deploy:deploy'处理期间部署根据项目打包构建的工件?
我的意思是:
即。我希望能够运行'mvn deploy'并具有以下结果:
我检查了'war:war documentation'并找到了'primaryArtifact'参数。但是,它只提到了本地存储库。
我尝试了以下POM,但它仍然将'*。war'或'*。zip'部署到远程存储库:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mygroup</groupId>
<artifactId>myapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- dependencies go here -->
</dependencies>
<build>
<plugins>
<! -- plugins like 'compiler' etc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<primaryArtifact>false</primaryArtifact>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>myapp-standalone</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/standalone.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<-- target repository information -->
</repository>
<snapshotRepository>
<-- target repository information -->
</snapshotRepository>
</distributionManagement>
</project>
似乎我可以通过将项目打包声明为'pom'并手动配置'war'包装所暗示的所有mojos来获得所需的行为('资源:resources','compiler:compile','resources:testResources','compiler:testCompile', 'surefire:test','war:war','install:install','deploy:deploy')。但是,这会使POM变得相当冗长,我想避免这种情况。
据我了解,Maven的方法是始终将项目打包类型隐含的工件作为项目工件之一。但是,如果他或她希望获得与任何默认打包类型不匹配的工件(例如单个'*。zip'存档),则不清楚Maven用户应该做什么。
有什么想法吗?
问候,丹尼斯
答案 0 :(得分:8)
根据Maven Deploy Plugin文档:
deploy:deploy用于自动安装工件,其pom以及特定项目生成的附加工件。 [...]
所以我认为没有可能阻止你的战争“按原样”部署。
但是,为了获得所需的效果,您可以在构建中添加一个特定的模块来负责生成程序集(程序集将依赖于war模块),并将war模块中的deploy插件配置为{ {3}}如下:
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>X.Y</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>