bash – 如何在maven pom.xml上变量化shell脚本输出以供使用
我想知道有没有办法让maven执行一个
shell脚本来卷曲资源并使响应可用,就像maven可以引用的环境变量或全局变量一样,还是可以用Groovy来实现?
所以当我做maven构建时我想要执行这个shell脚本.脚本本身将卷曲到一些资源URI并输出响应(我们可能必须等待它返回),并且maven或者可能Groovy可以以某种方式获得卷曲响应并使用它来设置一些配置. 解决方法
以下是建议的方法:
>使用Exec Maven Plugin启动脚本或命令 这种方法的要求: >您期望的卷曲响应(或输出或您的脚本)应具有name = value格式(即属性文件) 有关Maven阶段的完整列表,请参阅官方文档here 更新:下面是一个流程示例,刚刚测试并且工作正常(在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文件. 更新:上面是如何从脚本动态加载一组属性的示例,然后可以将这些属性注入Maven构建(因此用作POM配置的一部分). 但是,如果您需要将此动态配置加载到您的应用程序中,您甚至可以跳过第二步(Propeprties Maven插件)并从代码中的config.properties文件加载属性,只要该文件是该文件的一部分即可.应用程序类路径(如上例所示,放在src / main / resources下). 由于属性文件的创建发生在早期Maven阶段(验证或初始化),因此测试(对于您的测试)和包(对于您的最终人工制品)阶段可以根据需要使用它. 在Java中,您将使用java.util.Properties类,在Groovy中,您可以按照stackoverflow中的另一个问题按照说明here进行操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- WebService学习笔记-读取webxml.com.cn的天气服务信息
- REALTIME时钟是否支持闰秒?
- 处理OpenLDAP的新配置语法slapd.d / cn = config的替代方法
- scala – sbt插件动态加载用户定义的代码?
- bash – 将stdout / stderr重定向到多个文件
- Angular 4 routing – redirectTo with skipLocationChange
- angularjs – 在ng-repeat中使用模态窗口
- 很强的webservice+client自动智能升级
- vTiger CRM和BlackBerry手机的集成
- WebService大讲堂之Axis2(1):用POJO实现0配置的WebServi