Maven插件 - 编辑目标文件(战争)

时间:2014-12-19 09:35:30

标签: java maven java-ee

我正在开发一些小的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中的相同文件必须保持未经过模糊处理。 此外,我需要将一些混淆的文件合并到一个文件中。

1 个答案:

答案 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>