我正在尝试将gitflow-helper-maven-plugin
扩展名用于我的Maven构建。
因此,我想配置我的项目,以便在构建发行版时运行一些额外的步骤,并在编译SNAPSHOT版本时跳过它们,但是我找不到找到${project.version}
包含profile的方法的方法-SNAPSHOT
。
有什么建议吗?
下面是一种可能的方法,该方法是您始终可以if
在Maven构建中模拟语句的方式:
buid-helper-maven-plugin
及其regex-property
目标解析默认${project.version}
属性,并${only.when.is.snapshot.used}
使用valuetrue
或${project.version}
在SNAPSHOT
发现后缀的情况下创建一个新属性。maven-source-plugin
来执行它的jar
使用与特殊配置目标skipSource
选项,并传递给它的新的(动态的)${only.when.is.snapshot.used}
属性:在快照它将具有值的情况下,true
因此跳过执行,否则将具有值${project.version}
,其将被用作false
并且因此不跳过这个执行maven-javadoc-plugin
使用其skip
选项配置与上述相同上面方法的一个示例是:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.10</version>
<executions>
<execution>
<!-- sets the only.when.is.snapshot.used property to true if SNAPSHOT was used,
to the project version otherwise -->
<id>build-helper-regex-is-snapshot-used</id>
<phase>validate</phase>
<goals>
<goal>regex-property</goal>
</goals>
<configuration>
<name>only.when.is.snapshot.used</name>
<value>${project.version}</value>
<regex>.*-SNAPSHOT</regex>
<replacement>true</replacement>
<failIfNoMatch>false</failIfNoMatch>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>create-sources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!-- skip when version is SNAPSHOT -->
<skipSource>${only.when.is.snapshot.used}</skipSource>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
<executions>
<execution>
<id>create-javadoc</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!-- skip when version is SNAPSHOT -->
<skip>${only.when.is.snapshot.used}</skip>
</configuration>
</execution>
</executions>
</plugin>
也就是说,不需要配置文件,仅当将使用非SNAPSHOT版本时才动态启用此配置,而无需任何其他配置(命令行选项或任何其他选项)。
提醒一下,您也可以查看maven-release-plugin
,它仅在执行发行版时才有效地调用source和javadoc插件,而不会增加上述方法的复杂性。
否则,您可以简单地使用来自Maven Super POM的默认配置文件,该配置文件实际上将调用相同的source和javadoc插件,并且可以通过将属性performRelease
设置为value来激活true
。也就是说,在任何Maven项目中,您都可以调用以下命令:
mvn clean package -DperformRelease=true
或者
mvn clean package -Prelease-profile
您将自动从默认的超级配置文件中受益,并会生成源代码和javadoc jar,尽管此方法应作为最后的选择,因为在将来的发行版中可能会将配置文件从超级pom中删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句