我正在开发一些小的maven插件,我需要从目标编辑一些css和js文件(而不是从src!)。我无法理解我能做到的阶段。
要访问src,请使用phases:generate-resources
和以下代码:
MavenProject project = (MavenProject) getPluginContext().get("project");
String projectDir=project.getBasedir().toString();
如果在那里复制了所有js,css文件但是为了从目标编辑某些文件而没有生成war文件并且通过对js和css文件进行一些修改而获得最终战争,我怎样才能获得目标?
修改
我需要什么呢我的项目中有js文件:a.js,b.js.我想通过maven来混淆它们。我的意思是,当我构建项目时,混淆。当然,最终战争中的所有文件都必须进行模糊处理,但src中的相同文件必须保持未经过模糊处理。
此外,我需要将一些混淆的文件合并到一个文件中。
答案 0 :(得分:1)
我找到了答案。问题是我们必须在“prepare-package”和“package”阶段之间添加一些逻辑。当我们使用maven-war-plugin时,我们可以使用exploded
目标来实现。来自官方文档:
在指定目录中创建爆炸的webapp。
这里有必要记住一个重要的事情,即版本2.0.1之后的maven两次复制资源,所以如果我们想要使用maven 2.5,我们必须使用<useCache>true</useCache>
。最后的解决方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>prepare-war</id>
<phase>prepare-package</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
<configuration>
<useCache>true</useCache>
</configuration>
</plugin>
<plugin>
<groupId>my plugin</groupId>
<artifactId>...</artifactId>
<version>....</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>...</goal>
</goals>
</execution>
</executions>
</plugin>