Maven 发布以在子模块中执行单个组装
Maven release to perform assembly single in a sub module
我想 运行 Maven 版本,以便它应该为子模块执行 assembly:single
。我已经将 assembly:single
作为子模块 install
的一部分,即当您在顶层 运行 install
时,它会构建 jar-with-dependencies。但是当 release:perform
是 运行 时,即使它被配置为调用 install
(作为目标),它也不会构建 jar-with-dependencies。
如何 运行 在顶层发布并让此版本使用发布版本在子级别上执行 assembly:single
?
<modules>
<module>parent</module>
<module>api</module>
<module>testing</module>
<module>main</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<goals>install</goals>
<completionGoals>install</completionGoals>
</configuration>
</plugin>
</plugins>
</build>
这是main
中的子模块
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
发布插件使用以下配置:
<configuration>
<preparationGoals>install</preparationGoals>
</configuration>
并从头开始准备发布:
mvn release:prepare -Dresume=false
更详细的maven-release-plugin参数解释:
<goals>install</goals>
由 release:perform 调用。 Release:perform 将您的存储库克隆到 target/checkout 目录并在其中调用安装。
<preparationGoals>install</preparationGoals>
由 release:prepare 调用。安装在提交之前执行,默认是干净验证。
<completionGoals>install</completionGoals>
由 release:prepare 调用。提交后执行安装。在这种情况下,整个构建周期都会重复。
我想 运行 Maven 版本,以便它应该为子模块执行 assembly:single
。我已经将 assembly:single
作为子模块 install
的一部分,即当您在顶层 运行 install
时,它会构建 jar-with-dependencies。但是当 release:perform
是 运行 时,即使它被配置为调用 install
(作为目标),它也不会构建 jar-with-dependencies。
如何 运行 在顶层发布并让此版本使用发布版本在子级别上执行 assembly:single
?
<modules>
<module>parent</module>
<module>api</module>
<module>testing</module>
<module>main</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<goals>install</goals>
<completionGoals>install</completionGoals>
</configuration>
</plugin>
</plugins>
</build>
这是main
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
发布插件使用以下配置:
<configuration>
<preparationGoals>install</preparationGoals>
</configuration>
并从头开始准备发布:
mvn release:prepare -Dresume=false
更详细的maven-release-plugin参数解释:
<goals>install</goals>
由 release:perform 调用。 Release:perform 将您的存储库克隆到 target/checkout 目录并在其中调用安装。
<preparationGoals>install</preparationGoals>
由 release:prepare 调用。安装在提交之前执行,默认是干净验证。
<completionGoals>install</completionGoals>
由 release:prepare 调用。提交后执行安装。在这种情况下,整个构建周期都会重复。