2012-11-08 115 views
0

我想有一個便攜式Jetty服務器。默認jetty.home目錄包含便攜式Jetty服務器版本

 
    JettyHome 
    │ 
    ├─etc 
    │ ├─ jetty.xml 
    │ ├─ jetty-logging.xml 
    │ ├─ jetty-plus.xml 
    │ └─ webdefault.xml 
    ├─logs 
    │ 
    ├─lib 
    │ ├─ jetty-6.1.26.jar 
    │ └─ other.jar 
    ├─webapps 
    │ └─MyWebApp.war 
    ├─ start.jar 
    └─ start.ini 

從上面的,我想消除etclib目錄,並保留以下

 
    JettyHome 
    │ 
    ├─logs 
    ├─webapps 
    │ └─MyWebApp.war 
    └─ start.jar 

我收拾好所有的文件夾lib罐子到start.jar使用OneJar以及start.ini。有什麼辦法讓etc文件夾內容的罐子裏,這樣我可以簡單地運行

java -Xmx640M -jar rw.jar 

,而不是

java -Xmx640M -jar rw.jar etc/jetty.xml etc/jetty-annotations.xml etc/jetty-deploy.xml etc/jetty-logging.xml etc/jetty-webapps.xml 

所以我可以有一個便攜版本,我從來不擔心被人更改配置在客戶的地方。

謝謝。

回答

1

最好的辦法是將碼頭嵌入到您的應用程序中。

http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty

有了這個,你只需要在類路徑碼頭罐子,你應該是好去。你甚至可以把所有東西都塞進你想要的一個jar中,並且在清單中有一個Main類來啓動所有的事情。

無論如何,xml文件實際上只是java的一個薄層。看看這裏的一些嵌入式示例,這應該能讓你知道正確的方法。

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/examples/embedded/src/main/java/org/eclipse/jetty/embedded

+0

感謝您的回答。我會做的。 – vels4j