我正在通过Tapestry 5教程工作,我注意到对TML文件(或者新的TML文件)的更改不会自动从eclipse内部编译。我只能通过访问命令行和“mvn package”来获取新的TML文件或对任何TML文件的更改。这不可能是正确的。
在eclipse中这是一个Maven项目,我执行了整个“mvn eclipse:eclipse -DdownloadSources = true”的事情,所以很难相信eclipse项目配置不正确。
好像* tml文件不符合自动复制到目标目录的条件,如编译的* java文件或*属性文件。
如何为更多交互式调试配置此项目,我该怎么办?
答案 0 :(得分:2)
就个人而言,我总是向Jetty添加测试依赖项并使用以下类启动它。因为代码是从eclipse的类路径运行的,无论eclipse看到了什么,jetty web应用程序也会看到。因此,资源目录永远不会有任何问题。
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.26</version>
</dependency>
package jetty;
import org.apache.tapestry5.SymbolConstants;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
/**
* For jetty 6
* @see http://docs.codehaus.org/display/JETTY/Embedding+Jetty#comment-4391085
*/
public class JettyWebServer {
public static String context = "/";
public static int port = 8069;
private Server jettyServer;
public void start() throws Exception {
System.setProperty(SymbolConstants.PRODUCTION_MODE, "false");
jettyServer = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(port);
connector.setHost("127.0.0.1");
jettyServer.addConnector(connector);
WebAppContext context = new WebAppContext("src/web/", JettyWebServer.context);
context.setLogUrlOnStart(true);
context.setParentLoaderPriority(true);
jettyServer.setStopAtShutdown(true);
ContextHandlerCollection contexts = new ContextHandlerCollection();
contexts.addHandler(context);
jettyServer.setHandler(contexts);
jettyServer.start();
}
public void join() throws Exception {
jettyServer.join();
}
public void stop() throws Exception {
if (jettyServer != null)
jettyServer.stop();
}
public static void main(String[] args) throws Exception {
JettyWebServer server = new JettyWebServer();
try {
server.start();
server.join();
} finally {
server.stop();
}
}
}
答案 1 :(得分:0)
我假设您在src/main/java
的类文件旁边有模板文件?除了通常的/resources
位置之外,您还需要确保Maven将该位置的文件视为资源。此配置应该有效:
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
这也使Maven Eclipse插件(和M2集成)按预期运行。