gpt4 book ai didi

Maven:JspC 应该使用外部 JSP 文件

转载 作者:行者123 更新时间:2023-12-04 21:23:51 25 4
gpt4 key购买 nike

我们正在使用 Maven 3,我面临一个具有 JSP 文件并且还使用存储在不同项目中的“全局”JSP 文件的项目。这在使用 maven-war-plugin 时效果很好和 webResources .所有 JSP 文件都会进入 WAR 文件。

新的想法是预编译所有的 JSP。显而易见的选择是使用 jspc-maven-plugin .但是,它在编译项目本地 JSP 时不包括外部 JSP。

这是来自 pom.xml 的片段:

  <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jspc-maven-plugin</artifactId>
<executions>
<execution>
<id>jspc</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warName>${pom.groupId}.${pom.artifactId}-0.0.1-SNAPSHOT</warName>
<webXml>${basedir}/target/jspweb.xml</webXml>
<webResources>
<resource>
<directory>../name.of.external.project/src/global/webapp</directory>
</resource>
</webResources>
</configuration>
</plugin>

错误是
[ERROR] Failed to execute goal org.codehaus.mojo:jspc-maven-plugin:1.4.6:compile (jspc) on project internal.project: JSPC Error: file:C:/workspace/name.of.internal.project/src/main/webapp/WEB-INF/views/show.jsp(2,0) File "/WEB-INF/views/../jspGlobal/jsp-declaration.jspf" not found -> [Help 1]
jspGlobal -目录将被复制 <directory>../name.of.external.project/src/global/webapp</directory> - 上面的线。

在 JspC 中包含外部 JSP 缺少什么?

编辑 : 感谢 prunge'sRaghuram's input我更深入地研究了源代码和 JavaDocs。我注意到提到的 sources需要 FileSet这不允许目录列表。从 sources也不是列表,我看不到如何指定多个 JSP 源目录的机会。我什至试图复制 <plugin> -元素,但这没有帮助。我现在的情况是这样的:
  <plugin>
<groupId>org.codehaus.mojo.jspc</groupId>
<artifactId>jspc-maven-plugin</artifactId>
<version>2.0-alpha-3</version>
<executions>
<execution>
<id>jspc</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<sources>
<directory>${basedir}/../name.of.external.project/src/global/webapp</directory>
</sources>
<!-- the later mentioned <sources> gets picked
<sources>
<directory>${basedir}/src/main/webapp</directory>
</sources>
-->
<!-- 1.6 doesn't work!? Something lower than 1.5 seems to be the default -->
<source>1.5</source>
<target>1.5</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo.jspc</groupId>
<artifactId>jspc-compiler-tomcat6</artifactId>
<version>2.0-alpha-3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warName>${pom.groupId}.${pom.artifactId}-0.0.1-SNAPSHOT</warName>
<webXml>${basedir}/target/jspweb.xml</webXml>
<webResources>
<resource>
<directory>../name.of.external.project/src/global/webapp</directory>
</resource>
</webResources>
</configuration>
</plugin>

现在外部 JSP 被编译到当前项目的目标路径中。现在我需要一种方法来编译当前项目的 JSP。我该怎么做呢?

顺便说一句,如果我切换 <sources>到当前项目的行,我得到了与前面提到的相同的错误。

最佳答案

也许您可以尝试使用最新版本的 jspc-maven-plugin ,即 2.0-alpha-3。请注意 usage与早期版本略有不同。

关于Maven:JspC 应该使用外部 JSP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7156953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com