java – 让maven执行程序并将输出存储到可以在.jar清单中使用的属性中
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 让maven执行程序并将输出存储到可以在.jar清单中使用的属性中,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3143字,纯文字阅读大概需要5分钟。
内容图文
![java – 让maven执行程序并将输出存储到可以在.jar清单中使用的属性中](/upload/InfoBanner/zyjiaocheng/726/20bf5d35a34945ffbb0ade872a660872.jpg)
我想将git describe作为maven构建的一部分执行,并使用清单中的结果输出来构建.jar包.
我知道how to do this in ant通过<exec> task输出属性到一个ant属性变量,但我对Maven的经验很少,甚至不知道在哪里看.
这可能吗?
我在一个示例pom.xml文件中找到了这个,所以adding something to the manifest看起来很简单:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>my.class.here.Myclass</mainClass>
<classpathLayoutType>custom</classpathLayoutType>
<customClasspathLayout>lib/$${artifact.artifactId}-$${artifact.version}$${dashClassifier?}.$${artifact.extension}</customClasspathLayout>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
不知道如何捕获命令执行.
解决方法:
以下是建议的方法:
>使用Exec Maven Plugin启动git命令并写入属性文件(如果可能,名称=值模式)
>使用Properties Maven Plugin加载配置
然后,加载的配置可用作POM中的属性.我们基本上是动态创建构建的属性.为此(使用这些属性),必须在构建流程中尽早执行上述步骤(即验证或初始化阶段).
下面是一个流程示例,刚刚测试并完美运行(在Windows机器上):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>generation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>retrieve-config</id>
<phase>validate</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>echo</executable>
<arguments>
<argument>jar.name=from-exec</argument>
<argument>></argument>
<argument>config.properties</argument>
</arguments>
<workingDirectory>${basedir}/src/main/resources/</workingDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<id>read-properties</id>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/src/main/resources/config.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<finalName>${jar.name}</finalName>
</configuration>
</plugin>
</plugins>
</build>
</project>
基本上,附加到验证阶段的exec插件将在构建开始时执行,写入config.properties文件(通过echo命令)内容jar.name = from-exec.
然后附加到初始化阶段的属性插件将读取该config.properties文件并加载要用作构建的一部分的属性.
然后,作为示例,jar插件将使用该属性作为其配置的一部分(< finalName> ${jar.name}< / finalName>部分).
运行mvn clean包,您将在目标文件夹中找到from-exec.jar文件.
如果你不能得到一个让git描述为name = value模式的方法,你可以(最坏的情况)有两个Exec Maven Plugin执行,第一个写入文件的属性名和equals字符(即通过一个echo),第二个(git describe)将属性值附加到文件中.
内容总结
以上是互联网集市为您收集整理的java – 让maven执行程序并将输出存储到可以在.jar清单中使用的属性中全部内容,希望文章能够帮你解决java – 让maven执行程序并将输出存储到可以在.jar清单中使用的属性中所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。