Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven发布插件不提交pom.xml以外的文件_Maven_Maven Plugin - Fatal编程技术网

Maven发布插件不提交pom.xml以外的文件

Maven发布插件不提交pom.xml以外的文件,maven,maven-plugin,Maven,Maven Plugin,我有一个包含MANIFEST.MF的项目,我们有一个私有的maven插件,在构建包时修改MANIFEST文件 我们使用的是release:prepare和release:perform,问题是release:prepare完成的提交只更改pom.xml文件,而不是在构建时修改的其他文件。知道如何将这些文件添加到同一个提交中吗 我们使用这样的插件 mvn --batch-mode build-helper:parse-version -DpushChanges=false release:pre

我有一个包含MANIFEST.MF的项目,我们有一个私有的maven插件,在构建包时修改MANIFEST文件

我们使用的是release:prepare和release:perform,问题是release:prepare完成的提交只更改pom.xml文件,而不是在构建时修改的其他文件。知道如何将这些文件添加到同一个提交中吗

我们使用这样的插件

mvn  --batch-mode build-helper:parse-version -DpushChanges=false release:prepare -DdevelopmentVersion='${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}.0-SNAPSHOT' -DscmCommentPrefix='[maven-release-plugin][skip ci]' && mvn --batch-mode -DlocalCheckout=true release:perform && git push origin --follow-tags
你不能。 这不是一个好的构建过程应该做的

您的构建过程应该只保证,如果您稍后在完全相同的提交上执行构建过程,它将给出完全相同的结果

那么,它为什么要提交更改的清单文件呢? 如果稍后使用相同的提交运行构建,它不会以相同的方式再次更改清单文件吗


在这种情况下,插件不应该实际更改签入的清单文件,而是应该在
target/
目录中生成清单文件,并将其用于构建。它可以使用原始清单文件作为模板,但不应更改它。

在通常的生命周期内,自定义插件何时更改清单文件的内容?您能告诉我您正在谈论的是哪些“其他文件”吗?版本更改发生在POM中,这对我来说似乎没问题。在包周期中,如果我执行mvn包,我们的私有插件将从POM.xml中获取一些信息,并将它们放在Manifest文件中。Manifest.MF中进行了哪些更改。例如,您知道可以通过maven jar插件直接添加清单条目吗?感谢您的响应,我们需要确保pom.xml文件的版本与manifest.mf版本相同,例如,如果pom.xml包含1.0.0-SNAPSHOT,清单文件应该包含Bundle Version:1.0.0.qualifier当使用release plugin增加版本时,我们需要确保Bundle版本匹配,然后在构建期间使用正确的版本创建manifest.MF。或者将其用作筛选资源并引用
${project.version}
。我们不创建Manifest.mf文件,该文件已经存在。我们只需要确保版本匹配,在构建阶段对Manifest文件进行修改。在构建期间对源代码管理中的文件进行修改是一种错误。如果不想创建它,请尝试使用筛选的资源。不要在构建过程中修改文件,然后将其放入源代码管理。