swh*_*ite 28 java pom.xml maven-3
当我遇到这个问题时,我正在查找如何从maven pom或manifest获取应用程序名称(工件id)和版本.在运行时获取Maven工件版本.
对我来说,上述工程时,我包的项目,但我似乎无法得到任何工作,当我尝试运行使用eclipse的程序.我在构建时尝试使用.properties方法,因为我认为它不依赖于包,但我仍然没有得到结果.如果有人有这个问题的想法或解决方案,将不胜感激.
我的最后一次尝试如下.这在打包(使用)时使用清单,并在eclipse中运行时尝试获取.properties文件.
String appVersion = getClass().getPackage().getImplementationVersion();
if(appVersion == null || "".equals(appVersion)) {
appVersion = Glob.getString(appVersion);
if(appVersion == null || "".equals(appVersion)) {
System.exit(0);
}
}
Run Code Online (Sandbox Code Playgroud)
cod*_*lus 77
创建属性文件
src/main/resources/project.properties
Run Code Online (Sandbox Code Playgroud)
以下内容
version=${project.version}
artifactId=${project.artifactId}
Run Code Online (Sandbox Code Playgroud)
现在打开maven资源过滤
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
Run Code Online (Sandbox Code Playgroud)
以便将此文件处理成
target/classes/project.properties
Run Code Online (Sandbox Code Playgroud)
与此类似的一些内容
version=1.5
artifactId=my-artifact
Run Code Online (Sandbox Code Playgroud)
现在你可以阅读这个属性文件来获得你想要的东西,这应该每次都有效.
final Properties properties = new Properties();
properties.load(this.getClassLoader().getResourceAsStream("project.properties"));
System.out.println(properties.getProperty("version"));
System.out.println(properties.getProperty("artifactId"));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31833 次 |
最近记录: |