Dav*_* W. 5 maven maven-profiles
我们使用frontend-maven-plugin在我们的版本中使用grunt和bower。使用Frontend Maven插件,我可以在本地安装NPM,使用Bower下载Java库,然后运行Grunt来优化和混淆我的代码。
这样简化一下:
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>0.0.24</version>
<executions>
<execution>
<id>install node and npm</id>
<goals> <goal>install-node-and-npm</goal> </goals>
...
</execution>
<execution>
<id>npm-install</id>
<goals> <goal>npm</goal> </goals>
...
</execution>
<execution>
<id>bower-install</id>
<goals> <goal>bower</goal> </goals>
...
</execution>
<execution>
<id>grunt-build</id>
<goals> <goal>grunt</goal> </goals>
...
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
请注意,最后一次执行是grunt-build,这是将JavaScript文件连接在一起,进行优化(返回,注释和其他内容已删除)并进行模糊处理的地方。
这对于发行版非常有效。但是,开发人员希望在不对JavaScript文件进行串联,优化和混淆的情况下进行部署。这将帮助他们进行调试。为此,我们只需要grunt-build从此插件的配置中删除执行部分即可。
我想使用个人资料来执行此操作。我可以有一个名为的配置文件development,该文件允许开发人员在没有最后一节的情况下进行构建。我可以简单地复制并粘贴pom.xml文件的这一部分,删除最后执行的代码,然后将其放入单独的配置文件中。全部做完。
但是,有一个古老的编程谚语是:不要重复自己。我将在自己的服务器中复制大约50行代码pom.xml。
我想做的是有一种方法来执行前三个执行,并且只有在这不是开发版本时才执行第四个。在这方面,我还会有其他一些缺点。例如,我将不得不复制JavaScript本身,而不是复制结果。但是,这很容易做到,并且不会重复代码。
这将导致重复的代码,因为我必须frontend-maven-plugin使用两种配置来定义。一次用于development配置文件,一次用于标准发行版。据我所知,我不能说运行的配置frontend-maven-plugin,如果这不是开发构建,请运行的实例,frontend-maven-plugin这只会做些麻烦的事情。
有没有一种方法可以在中两次定义相同的插件pom.xm,并使Maven以正确的顺序运行两个实例?
您很幸运,grunt该插件的目标定义了一个属性,因此您只需在自定义配置文件中skip设置此属性即可。true
因此,您需要创建一个将development自定义属性设置skipGrunt为 的配置文件true和一个将其设置为 的默认配置文件false。
然后,在目标的插件配置中grunt,您可以添加
<configuration>
<skip>${skipGrunt}</skip>
<!-- rest of configuration -->
</configuration>
Run Code Online (Sandbox Code Playgroud)
此评论可以更笼统:当您需要跳过插件的特定执行时,通常skip可以设置一个自定义属性true。
| 归档时间: |
|
| 查看次数: |
2578 次 |
| 最近记录: |