2015-11-11 2 views
0

У меня есть небольшая проблема с файлами свойств. Сгенерировать зависимости tree.txt файл с Maven и хранить его в моем файле EARПрочитать свойство в файле EAR из файла WAR

EAR 
    /META-INF 
    dependency-tree.txt 
    /lib 
    some libs 
    restservice.war 

Теперь я хочу, чтобы отобразить файл зависимости tree.txt с REST службой. Я разработал конечную точку REST в restservice.war.

Могу ли я получить доступ к файлу зависимости-tree.txt, который хранится вне военного файла, но внутри файла уха?

Причина этой конечной точки REST заключается в том, что мы хотим предоставить интерфейс для команды-испытателя. При таком подходе мы можем описать развернутый артефакт без каких-либо действий вручную.

Или у кого-нибудь лучшее решение для меня?

Благодаря

ответ

1

Идея заключается в том, чтобы запустить плагин Maven-зависимостей-плагин: дерево на Validate фазы (1 фаза в жизненном цикле Maven) и скопируйте файл (tree.txt), чтобы право место для вашей ВОЙНЫ, что после генерации войны/ уха файл должен быть в нужном месте для развертывания службы REST.

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <!-- because we will use the plugin org.apache.maven.plugins at validate 
        phase, for Eclipse is happy , we'll ignore here --> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-dependency-plugin</artifactId> 
            <versionRange>[2.10,)</versionRange> 
            <goals> 
             <goal>tree</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore /> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.10</version> 
      <executions> 
       <execution> <!-- --> 
        <id>generateTree</id> 
        <phase>validate</phase> <!-- You can change it , if you put 'test' , you can delete <pluginManagement> --> 
        <goals> 
         <goal>tree</goal> 
        </goals> 
        <configuration> 
         <outputFile>src/main/resources/tree_rest_access.txt</outputFile> 
         <!-- change location, exemple : you can use => restservice/src/main/webapp/tree/rest 
          , and expose from controller "tree/rest/tree_rest_access.txt" --> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

THX для вашего ответа. НО: У меня есть файл EAR со всеми необходимыми зависимостями (для модулей WAR, EJB, ...). Сгенерированный файл дерева зависимостей идеально подходит, но мне нужен он в проекте с REST, чтобы предоставить возможность запросить версии. Почему я хочу этого? Я буду развертывать EAR-файл с созданным деревом зависимостей для команды тестирования системной интеграции. – brucke

0

Почему вы храните его в EAR !? EAR обычно должен содержать только WAR, и если ваш сервер требует этого, другой файл развертывания (например, jboss-deployment-structure.xml). EAR - это оболочка для упаковки нескольких модулей вместе, ничего другого.

Если у вас есть конечная точка REST и вы хотите вернуть ресурсы из проекта, вы можете достичь этого, введя ресурсы в проект. Создание файла в корне проекта и его чтение легко настраивается с помощью относительного пути при загрузке ресурса. Лучшее решение состоит в том, чтобы четко определить внешнее местоположение для хранения этого файла, чтобы настроить это местоположение в файле приложения config.properties. В этом случае всем разработчикам просто нужно будет установить этот путь в своих индивидуальных конфигурациях.

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