为所有maven产品创建校验和
我正在尝试为当前在我的maven构建中的所有工件创建SHA-1校验和,并将这些校验和写入文件。目前我正在研究使用具有内置校验和生成器的maven-install-plugin。为所有maven产品创建校验和
https://maven.apache.org/plugins/maven-install-plugin/examples/installing-checksums.html
的问题是,这种解决方案似乎只是一个假象,而不是在我的生成所有的工件。我无法在构建时指定所有工件,我需要一个包含所有工件的解决方案。
附加信息:我使用Jenkins作为构建工具,所以如果有Jenkins解决方案,我也可以。尽管如此,我还没有找到一个人。
您可以使用Checksum Maven Plugin及其artifacts目标。
我只是测试下面的示例POM:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>create-jar-something</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>something</classifier>
</configuration>
</execution>
<execution>
<id>create-jar-else</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>else</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.ju-n.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<goals>
<goal>artifacts</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
注:我创建这个工程三个假象:默认的一个,并与分类两个额外的罐子。
感谢的artifacts
目标简单单的执行,我得到了以下内容作为构建的一部分(mvn clean verify
):
通过附加individualFiles
配置条目,还可以决定是否将校验和存储在单独的文件中(默认)或附加到一个文件中,而通过individualFilesOutputDirectory
配置条目,您可以将其创建重定向到其他位置(如果需要)。
因此,这种方法可以满足您的需求,因为它会自动检测任何生成的工件并计算它的校验和。
还要注意在as per documentation多模块项目的情况:
默认情况下不会在多项目构建继承。
在这种情况下,你可以将片段上方在你的父/聚合POM的pluginManagement
部分,只是重新申报插件(但不是它的执行也不是它的版本),在你要激活的子模块行为。
因此,在你的父母/聚合器,你可以有这样的:
<pluginManagement>
<plugins>
<plugin>
<groupId>net.ju-n.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<goals>
<goal>artifacts</goal>
</goals>
</execution>
</executions>
<configuration>
</configuration>
</plugin>
</plugins>
</pluginManagement>
而在模块要启用此行为,则只会指定:
<build>
<plugins>
<plugin>
<groupId>net.ju-n.maven.plugins</groupId>
<artifactId>checksum-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
最后但并非最不重要的一点:如果Jenkins上的CI构建的一部分,你也可以考虑一个专门的配置文件,并在构建中激活它,但不作为默认构建的一部分。
完美的作品,谢谢! –
有多少工件是相同的maven构建创建?这是一个多模块项目吗? –
这是一个相当大的项目,创造了超过二打左右的文物。这个数量的工件可以在这里手动配置,但如果更多的工件被创建,我希望这些被自动包含。编辑:这是一个多模块项目 –