2016-07-13 2 views
0

У нас есть вложенный многомодульный проект. Наши разработчики - это сочетание пользователей IntelliJ IDEA и Eclipse.База ресурсов Jetty, отличная от Maven Вложенный многомодульный проект IntelliJ IDEA vs Eclipse

При запуске сервера причала внутри внутреннего модуля кажется, что нам нужно установить базу ресурсов на разные значения в зависимости от используемой нами среды IDE.

Для IntelliJ:

root.setResourceBase("myModule/src/main/webapp");

Для Eclipse:

root.setResourceBase("src/main/webapp");

Мы не хотим, чтобы настроить нашу Иду, чтобы заставить его работать, например, Я не хочу менять некоторые настройки в IntelliJ, чтобы он работал с версией кода Eclipse.

Любые идеи?

ответ

1

Короткий ответ:

Вашего исполнений различие между Затмением против Intellij можно объяснить наличие другого PWD или $ {user.dir}, или работать настройки каталога.

Лучший ответ:

Не использовать пути файловой системы, то.

Посмотрите известный ресурс в этом месте через Classloader.getResource(), а затем передать родительский каталог в root.setResourceBase()

Пример:

Server server = new Server(8080); 

    // Figure out what path to serve content from 
    ClassLoader cl = WebAppContextFromClasspath.class.getClassLoader(); 
    // We look for a file, as ClassLoader.getResource() is not 
    // designed to look for directories (we resolve the directory later) 
    URL f = cl.getResource("hello.html"); 
    if (f == null) 
    { 
     throw new RuntimeException("Unable to find resource directory"); 
    } 

    // Resolve file to directory 
    URI webRootUri = f.toURI().resolve("./").normalize(); 
    System.err.println("WebRoot is " + webRootUri); 

    WebAppContext webapp = new WebAppContext(); 
    webapp.setContextPath("/"); 
    webapp.setWar(webRootUri.toASCIIString()); 
    webapp.setParentLoaderPriority(true); 

    server.setHandler(webapp); 

    server.start(); 
    server.join(); 

Вы можете увидеть это в embedded-jetty-cookbook примерах:

Другой лучший ответ:

Другой подход заключается в нахождении src/main/webapp несколько различных способов в зависимости от того, как бежится

См рабочие режимы в ServerMain.java в embedded-jetty-live-war пример.

Смежные вопросы