2014-10-28 1 views
1

У меня есть исходный корень с * .java-файлами, но я не хочу, чтобы они были скомпилированы. Вместо этого файлы * .java должны быть скопированы в банку, как есть. Вариант использования для этого состоит в том, что файлы * .java являются шаблонами и, следовательно, должны быть сохранены, как есть.Как включить нескомпилированные java-файлы в JAR, созданные Tycho?

Для этого я попытался исключить исходную папку из фазы компиляции моей сборки, и я довольно смущен официальной документацией к плагину Compiler Tycho OSGi. Он говорит, что я могу использовать параметр excludeResources, но я не знаю, как обрабатывать все эти типы параметров. pom.xml - это структурированный текстовый файл, а не исходный файл, поэтому я не понимаю, как использовать этот параметр для java.util.Set.

Мой POM выглядит следующим образом:

... 
<build> 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-compiler-plugin</artifactId> 
      <version>0.21.0</extensions> 
      <configuration> 
       <excludeResources> 
        <!-- Set of folders consisting of a source folder named "res" 
         which should be excluded completely from compilation --> 
       </excludeResources> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Является ли это правильный подход? Если да, как мне заполнить конфигурацию?

+0

это не ясно из вашего вопроса, хотите ли вы, чтобы исключить всю папку исходного корня или просто пакет внутри источника корневой папки из компиляции. Кроме того, вы хотите исключить файлы * .java из компиляции или ресурсов (не-java-файлы) из копии? – jsievers

+0

Спасибо за намек, я уточнил свой вопрос более точно. –

+0

@ Danny: Ваше редактирование сделало вопрос лучше, но лучше начать с ваших целей, и только тогда укажите, что вы пробовали. Тем более, что сомнительно, были ли вы на правильном пути с помощью tycho-compiler-plugin вообще. – oberlies

ответ

0

Если вы хотите исключить целую корневую папку источника из компиляции, просто не добавляйте ее ни к одной из src. * записей в build.properties, см. [1]

Если, с другой стороны, вы хотите включить * .java-файлы в исходную корневую папку в полученном банке, добавьте корневую папку в список bin.includes в build.properties.

excludeResources не имеет никакого отношения к вашей проблеме, так как документы вы связаны сказать:

«список исключений фильтров для файлов без ява ресурсов, которые не должны быть скопированы в каталог вывода.»

[1] http://eclipse.org/tycho/sitedocs/BuildProperties.html

+0

Я думаю, что это правильный ответ, но было бы более полезно, если бы он включил пример для предлагаемых изменений build.properties. – oberlies

1

Попробуйте что-то вроде этого, чтобы удалить любые вхождения папки «разрешение» и файлы:

<plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>tycho-compiler-plugin</artifactId> 
     <version>${tycho-version}</version> 
     <configuration> 
       <excludeResources> 
         <excludeResource>**/res</excludeResource> 
       </excludeResources> 
     </configuration> 
</plugin> 

этого, в качестве альтернативы, например, включить «Рес» папку и исключить .jar файлов:

<plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>tycho-compiler-plugin</artifactId> 
     <version>${tycho-version}</version> 
     <configuration> 
       <includes> 
        <include>res</include> 
       </includes> 
       <excludes> 
        <exclude>**/*.jar</exclude> 
       </excludes> 
     </configuration> 
</plugin> 

Или, чтобы исключить все, что не является «разрешением» папка:

<plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>tycho-compiler-plugin</artifactId> 
     <version>${tycho-version}</version> 
     <configuration> 
       <excludeResources> 
         <excludeResource>!**/res</excludeResource> 
       </excludeResources> 
     </configuration> 
</plugin> 
+0

Как я могу использовать '' для создания набора ''? Конечно, это логично и прямолинейно, но на самом деле не стоит разбираться в попытке и ошибке. Это где-то задокументировано? –

+0

Вы можете добавить столько правил, как вам нравится: Правило 1 Правило 2 Вы можете найти это задокументировано на официальной странице, которую вы указываете на открытии, и в онлайн-учебниках, таких как http://mukis.de/pages/maven-tycho-java-scala-and-apt/ и http: //larsschuetze.wordpress .com/2014/07/30/from-handmade-to-automatic-introduction-tycho-for-eclipse-rcp-applications/ –

+0

Поскольку tycho является очень новым, недостатка в некоторых аспектах документации. Вы не одиноки в этом вопросе. Тичо должен созреть свою документацию. –