从 Pom 更新清单版本
Update Manifest Version From Pom
发布后(我知道 Tycho 不支持,但我们以某种方式让它工作)我想从 Manifest.MF 自动更改版本pom.xml - 将来甚至在同一个构建过程中。
在研究如何实现自定义 Maven 插件时,我发现了 tycho-versions-plugin
,它几乎可以满足我的要求,因此我将其添加到构建中:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-versions-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>versions</id>
<phase>validate</phase>
<goals>
<goal>set-version</goal>
</goals>
</execution>
</executions>
<configuration>
<newVersion>${project.version}</newVersion>
</configuration>
</plugin>
现在只有 Manifest.MF 和 pom.xml 已经有相同的版本才有效,这对我来说没用。是否缺少一些晦涩的参数,或者我真的必须为增加版本的奇异用例开发自己的插件吗?
如果有人想修复他们自己的 tycho-versions-plugin
,这就是我为使它起作用所做的工作。在 VersionsEngine
中,我用以下方法删除了 if
:
public void addVersionChange(String artifactId, String newVersion) throws IOException {
MutablePomFile pom = getMutablePom(artifactId);
// if (!newVersion.equals(pom.getVersion())) {
addVersionChange(new VersionChange(pom, newVersion));
// }
}
而且我不完全确定这是否必要甚至明智,但我在 BundleManifestManipulator
中更改了以下方法:
private boolean isProjectVersionChange(ProjectMetadata project, VersionChange change) {
MutableBundleManifest mf = getBundleManifest(project);
return change.getArtifactId().equals(mf.getSymbolicName());
}
感谢 post,非常有用!
tycho 有一种发布方式,只需要禁用版本检查即可。
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<strictVersions>false</strictVersions>
</configuration>
</plugin>
感谢@Steffi S。我创建了一个新的 Mojo 来做这样的事情:
可以在
https://github.com/eclipse/tycho/pull/7
要么
https://github.com/perelengo/tycho
发布后(我知道 Tycho 不支持,但我们以某种方式让它工作)我想从 Manifest.MF 自动更改版本pom.xml - 将来甚至在同一个构建过程中。
在研究如何实现自定义 Maven 插件时,我发现了 tycho-versions-plugin
,它几乎可以满足我的要求,因此我将其添加到构建中:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-versions-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>versions</id>
<phase>validate</phase>
<goals>
<goal>set-version</goal>
</goals>
</execution>
</executions>
<configuration>
<newVersion>${project.version}</newVersion>
</configuration>
</plugin>
现在只有 Manifest.MF 和 pom.xml 已经有相同的版本才有效,这对我来说没用。是否缺少一些晦涩的参数,或者我真的必须为增加版本的奇异用例开发自己的插件吗?
如果有人想修复他们自己的 tycho-versions-plugin
,这就是我为使它起作用所做的工作。在 VersionsEngine
中,我用以下方法删除了 if
:
public void addVersionChange(String artifactId, String newVersion) throws IOException {
MutablePomFile pom = getMutablePom(artifactId);
// if (!newVersion.equals(pom.getVersion())) {
addVersionChange(new VersionChange(pom, newVersion));
// }
}
而且我不完全确定这是否必要甚至明智,但我在 BundleManifestManipulator
中更改了以下方法:
private boolean isProjectVersionChange(ProjectMetadata project, VersionChange change) {
MutableBundleManifest mf = getBundleManifest(project);
return change.getArtifactId().equals(mf.getSymbolicName());
}
感谢 post,非常有用! tycho 有一种发布方式,只需要禁用版本检查即可。
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-packaging-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<strictVersions>false</strictVersions>
</configuration>
</plugin>
感谢@Steffi S。我创建了一个新的 Mojo 来做这样的事情: 可以在 https://github.com/eclipse/tycho/pull/7 要么 https://github.com/perelengo/tycho