jspc-maven-plugin - 不一致的genereated类目录

时间:2010-07-28 10:35:19

标签: jsp maven-2

我有一个带有以下配置的网络应用程序(继承自父级的pluginManagement)。 JSPC预编译我的JSP很好,但有一些非常奇怪的行为:

在我的网络应用程序中,如果我运行 mvn clean install ,编译的JSP类就会像我想要的那样放在目标/类中。 如果我在没有清理的情况下运行 mvn install ,则编译的JSP将与JSP本身一起放在target / jsp-source / jsp

结果是在非干净运行中,它是包含在WAR中的JSP类的旧版本。

任何人都知道为什么会发生这种情况?

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jspc-maven-plugin</artifactId>
<version>1.4.6</version>
<executions>
    <execution>
        <id>jspc</id>
        <goals>
            <goal>compile</goal>
        </goals>
        <configuration>
            <injectString>&lt;!-- [INSERT JSPC FRAGMENT HERE] --&gt;</injectString>
        </configuration>
    </execution>
</executions>
<dependencies>
    <dependency>
        <groupId>org.codehaus.mojo.jspc</groupId>
        <!-- change tomcat6 to tomcat5 below for 5.5 compatibility  -->
        <artifactId>jspc-compiler-tomcat6</artifactId>
        <version>2.0-alpha-3</version>
    </dependency>
</dependencies></plugin>

由于

加里

1 个答案:

答案 0 :(得分:0)

我想我找到了它。

默认行为是将jsp文件编译为target / jsp-source / jsp。然后将生成的类文件移动到目标/类。

但是,使用Java的file.rename()方法执行此移动,如果目标/类中已存在具有预期名称的文件,则该方法不保证行为。我想在Windows上,它只是中止重命名。

我看到代码的当前主干版本(2.0-alpha-4-SNAPSHOT)使用Groovy来调用Ant Copy,如果现有文件比新文件旧,则会导致现有文件被覆盖。这就是我需要的,我会尝试,即使它是一个快速的阿尔法。